在Ubuntu安裝的Mysql無法遠程連接,現在我們來告訴你如何設置,如果你的Mysql無法用密碼登錄,可以一下前面部分.
1、mysql安裝后密碼無法登陸問題
這時你需要進入/etc/mysql目錄下,然后查看里面的用戶名和密碼,然后:
sudo vim debian.cnf
使用這個文件中的用戶名和密碼進入mysql,假如debian.cnf中的用戶名為debian-sys-maint,則:mysql -u debian-sys-maint -p
按回車,這時需要你輸入密碼,復制debian.cnf中的密碼,不要手動輸入,因為容易產生錯誤,在終端中會出現mysql>這樣的提示:
- use mysql
- show tables;//查看mysql數據庫中的表,會看到一個user表。
- select * from user;//查看一下這個表中是否有root用戶,如果有:
- update user set password=password("root") whereuser="root";//更改root用戶進入mysql的密碼。
- flush privileges; --Vevb.com
quit退出mysql,然后用 mysql -u root -proot 重新登錄mysql即可。
如果user表中沒有root用戶:用grant命令:
grant all privileges on *.* to root@localhost identified by'123'
其中*.*代表所有數據庫中的所有表,即database name.your table'123'表示為root用戶的密碼.
flush privileges;
select * from user;查看一下user這個表中是否有root用戶。如果有表示添加成功。
quit退出mysql.
mysql -u root -p 123進入mysql即可.
2、配置遠程連接
① vim /etc/mysql/my.cnf 找到 bind-address = 127.0.0.1
注釋掉這行,如:#bind-address = 127.0.0.1 或者改為:bind-address = 0.0.0.0 允許任意IP訪問;或者自己指定一個IP地址,重啟 MySQL:sudo /etc/init.d/mysql restart
② 授權用戶能進行遠程連接.
grant all privileges on *.* to root@"%" identified by "password" with grant option;
flush privileges;
第一行命令解釋如下,*.*:第一個*代表數據庫名,第二個*代表表名,這里的意思是所有數據庫里的所有表都授權給用戶,root:授予root賬號,“%”:表示授權的用戶IP可以指定,這里代表任意的IP地址都能訪問MySQL數據庫,“password”:分配賬號對應的密碼,這里密碼自己替換成你的mysql root帳號密碼.
新聞熱點
疑難解答