?
localhost改成%
進入mysql的BIN目錄
?代碼如下 | 復制代碼 |
mysql -u root -p mysql>use mysql; mysql>update user set host =’%'where user =’root’; mysql>flush privileges; |
具體分析
1、在本機登入mysql后,更改“mysql”數據庫里的“user”表里的“host”項,從”localhost”改為'%'。
?代碼如下 | 復制代碼 |
mysql> mysql>use mysql; mysql>select 'host' from user where user='root';????? |
?? #查看mysql庫中的user表的host值(即可進行連接訪問的主機/IP名稱)
?代碼如下 | 復制代碼 |
mysql>update user set host = '%' where user ='root'; |
#修改host值(以通配符%的內容增加主機/IP地址,當然也可以直接增加某個特定IP地址,如果執行update語句時出現ERROR 1062 (23000): Duplicate entry '%-root' for key 'PRIMARY'?錯誤,需要select host from user where user = 'root';
查看一下host是否已經有了%這個值,如果有了直接執行下面的flush privileges;即可)
?代碼如下 | 復制代碼 |
mysql>flush privileges; |
? 安裝好mysql后修改密碼發生:#1251 - Client does not support authentication protocol requested by server; consider upgrading MySQL client 錯誤。
???? 原因:
升級客戶端?
新版本的mysql使用了新的密碼驗證方法?
設置mysql密碼時使用old_password可以解決這個問題
????????解決方法如下:
?????方法一:
mysql> SET PASSWORD FOR
???????? -> 'some_user'@'some_host' = OLD_PASSWORD('新密碼');
???? 方法二:
mysql> UPDATE mysql.user SET Password = OLD_PASSWORD('新密碼')
??????? -> WHERE Host = 'some_host' AND User = 'some_user';
mysql> FLUSH PRIVILEGES;
注:
some_user:表示當前出錯的用戶ID,例如:root;
some_host:表示當前主機,例如:localhost;
docker run -i -t -d -p 3306:3306 -p 8080:80 d5127813070b /bin/bash
mysql應用在/var/lib/mysql下
mysql> use mysql;?
mysql> update user set password=password('123') where user='root' and host='localhost';?
mysql> flush privileges;?
update user set host ='%'where user ='root';
方法1: 用SET PASSWORD命令
首先登錄MySQL。
格式:mysql> set password for 用戶名@localhost = password('新密碼');
例子:mysql> set password for root@localhost = password('123');
方法2:用mysqladmin
格式:mysqladmin -u用戶名 -p舊密碼 password 新密碼
例子:mysqladmin -uroot -p123456 password 123
方法3:用UPDATE直接編輯user表
首先登錄MySQL。
mysql> use mysql;
mysql> update user set password=password('123') where user='root' and host='localhost';
mysql> flush privileges;?