1. 程式人生 > >mysql設定遠端連線及問題解決

mysql設定遠端連線及問題解決

一.設定遠端連線

1.檢視使用者
mysql -u root -p

mysql> use mysql;
Database changed
mysql> select host,user from user;
+--------------+------+-------------------------------------------+
| host         | user          |
+--------------+------+-------------------------------------------+
| localhost    | root          |
| localhost | debian-sys-maint |
| localhost | mysql.session    |
| localhost | mysql.sys        |
+--------------+------+-------------------------------------------+
2 rows in set (0.00 sec)
2.設定允許root使用者在任何地方進行遠端登入,並具有所有庫任何操作許可權,具體操作如下:
mysql>GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '這裡是你的密碼' WITH GRANT OPTION;
FLUSH PRIVILEGES;

檢視一下:

mysql> select host,user from user;
+-----------+------------------+
| host      | user             |
+-----------+------------------+
| % | root | | localhost | debian-sys-maint | | localhost | mysql.session | | localhost | mysql.sys | +-----------+------------------+ 5 rows in set (0.00 sec)

這裡就成功了,你可以在任何機器訪問,但是可能會有一些錯誤,下面我將遇到的錯誤列出來。

二.常見錯誤

首先如果出現上面的結果就代表配置沒問題了,你可以在任何機器訪問,但是可能會有一些錯誤,下面我將遇到的錯誤列出來。

1.網路問題

ping 一下如果不可以就是網路問題。

2.埠被防火牆擋住。

解決方法有兩個:
(1)關閉防火牆:

ufw disable

(2)允許3306埠通過防火牆

vi /etc/sysconfig/iptables
-A INPUT -m state –state NEW -m tcp -p tcp –dport 3306 -j ACCEPT
/etc/init.d/iptables restart(重啟防火牆使配置生效)
3.檢查MySQL配置
netstat -apn|grep 3306
tcp6  0  0 127.0.0.1:3306  :::*  LISTEN    13524/mysqld

這說明3306埠被繫結到了本地,修改/etc/mysql/mysql.conf.d/mysqld.cnf
將bind-address=127.0.0.1 修改為bind-address=0.0.0.0