mysql設置允許其它機器連接


  mysql設置允許其它機器連接

  (2011-10-25 15:27:25)

  轉載▼

  未經設置的mysql不允許其它機器連接,可能報如下錯誤

  Lost connection to MySQL server at 'reading initial communication packet', system error: 111

  Host '*.*.*.*(連接數據的機器ip)' is not allowed to connect to this MySQL server

  解決方法:

  需要經過兩步設置

  1.設置mysql允許其它機器連接

  #vi /etc/mysql/my.cnf

  把bind-address=127.0.0.1注釋掉,前面加#

  2.授權其它機器操作數據庫

  進入mysql命令行操作

  mysql -uroot -p123456(123456是密碼)

  mysql>GRANT ALL PRIVILEGES ON 數據庫名.* TO root@"%" IDENTIFIED BY "123456";123456是密碼

  數據庫名根據訪問的實際數據庫名修改,也可以設置所有的數據庫用*代替

  這樣其它機器就可以訪問指定的數據庫了

  mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '密碼' WITH GRANT OPTION;

  mysql> FLUSH PRIVILEGES;

  ERROR 1130: Host ***.***.***.*** is not allowed to connect to this MySQL server

  登陸mysql

  首先 use mysql;

  按照別人提供的方式update的時候,出現錯誤。

  mysql> update user set host='%' where user = 'root';

  ERROR 1062 (23000): Duplicate entry '%-root' for key 'PRIMARY'

  然后查看了下數據庫的host信息如下:

  mysql> select host from user where user = 'root';

  +-------------+------+

  | host | user |

  +-------------+------+

  | % | root |

  | 127.0.0.1 | root |

  | MicroLetter | |

  | MicroLetter | root |

  | localhost | |

  +-------------+------+

  host已經有了%這個值,所以直接運行命令:

  mysql>flush privileges;

  以下以Ubuntu系統為例,總結了自己遇到過的幾種安裝Mysql后外部機器不能訪問的問題原因。

  1、最常見的是用戶權限問題。

  Mysql安裝后,默認只允許本機訪問Mysql,通過以下命令可以查看:

  mysql>use mysql;

  mysql>select user, host from user;

  +-----------------------------------+----------------------------------+

  | user | host |

  +-----------------------------------+----------------------------------+

  | root | localhost |

  | root | 127.0.0.1 |

  | root | ubuntu |

  +----------------------------------+-----------------------------------+

  如上所示,使用update修改其中某一條記錄的host字段值為'%',或者新增一條記錄且host字段值為‘%’。

  2、防火牆原因

  有些機器默認開了防火牆,也有可能導致外部機器不能訪問3306端口,以Ubuntu為例,可以通過iptables修改防火牆配置

  vi /etc/sysconfig/iptables

  -A INPUT -m state –state NEW -m tcp -p tcp –dport 3306 -j ACCEPT

  編輯iptables,新增上面一條記錄。根據不同系統或版本差異,更詳細的修改方法可以上網搜索查找。

  3、綁定地址有誤

  如果上面兩種情況都不存在或不能解決,可以使用netstat命令查看mysql服務綁定的ip,如果綁定的是127.0.0.1,則外部機器也不能訪問mysql。可以通過修改Mysql配置文件解決。以Ubuntu系統為例,使用apt-get方式安裝的Mysql,配置文件默認位置通常是/etc/mysql/mysql.conf.d/mysqld.cnf

  使用sudo vi /etc/mysql/mysql.conf.d/mysqld.cnf命令編輯該文件

  注釋掉以下一行即可:

  bind-address = 127.0.0.1

  使用 mysql --help 查看關於MYSQL對應 配置文件my.cnf 搜索順序,windows 和linux 上都是該命令查看

  linux 上可以使用 mysql --help|grep my.cnf 過濾查看

  一般linux 上都放在 /etc/my.cnf


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM