Gin's Blog

vuePress-theme-reco Gin    2020 - 2024
Gin's Blog

Choose mode

  • dark
  • auto
  • light
Home
Category
  • AWS
  • CI
  • ELK
  • Miscullaneous
  • MySQL
  • Ruby on Rails
Tag
TimeLine
RSS
Contact
  • GitHub
  • Medium

Gin

10

Article

13

Tag

Home
Category
  • AWS
  • CI
  • ELK
  • Miscullaneous
  • MySQL
  • Ruby on Rails
Tag
TimeLine
RSS
Contact
  • GitHub
  • Medium

MySQL allow remote access

vuePress-theme-reco Gin    2020 - 2024

MySQL allow remote access

Gin 2020-08-20 MySQL

# Summary

前一陣子在使用 ELK,想把 MySQL 的資料 sync 到 ELK,需要把 MySQL 設為可以給外部連線,所以紀錄一下有哪些步驟。

# Step 1. 編輯 MySQL config

sudo vi /etc/mysql/mysql.conf.d/mysqld.cnf
1

# Step 2. 編輯 bind-address 為 0.0.0.0

#
# Instead of skip-networking the default is now to listen only on
# localhost which is more compatible and is not less secure.
bind-address            = 127.0.0.1
1
2
3
4

修改成

bind-address            = 0.0.0.0
1

Restart MySQL

sudo service mysql restart
1

值為 127.0.0.1 表示僅 localhost 可以進行連線,而如果設為 0.0.0.0 則允許外部連到 MySQL。

# Step 3. 新增 MySQL 使用者

CREATE USER 'username'@'localhost' IDENTIFIED BY 'user_password';
1
  • username: 自行替換為你想要的使用者名稱
  • localhost: 此處為 host,如果值為 localhost 表示僅允許這個使用者在這台機器上做連線,其他主機不行(SSH 除外),如果要外部連線,請設想連線主機的 IP,或也可以使用 % 代表任何主機都可以進行連線,請謹慎使用 %,盡量將權限、可連線的來源最小化。
  • user_password: 使用者密碼

# Step 4. Grant privileges

GRANT ALL PRIVILEGES ON database_name.table_name TO 'username'@'localhost';

GRANT SELECT, INSERT, DELETE ON database_name.* TO 'username'@'localhost';
1
2
3

新增使用者的權限,僅允許 SELECT, INSERT, DELETE, ALL PRIVILEGES 等,並且可以指定資料庫及資料表,例如:我想新增使用者僅允許讀取 development 資料庫的 users 資料表,則可以這樣設定:

GRANT SELECT ON development_.users TO 'jay'@'localhost';
1

Revoke privileges

REVOKE ALL PRIVILEGES ON database_name.* FROM 'username'@'localhost';
1

# Step 5. 遠端連線

mysql -u username -p -h 'xxx.xxx.xxx.xxx'
1