1. 程式人生 > 實用技巧 >mysql重設密碼及允許遠端訪問

mysql重設密碼及允許遠端訪問

一.重設密碼

1.知道原來的myql的root的密碼

方法一:

通過登入mysql系統,
mysql -uroot -p
Enter password: 【輸入原來的密碼】
mysql>use mysql;
mysql> update user set authentication_string=passworD("test123") wher user='root';
mysql> flush privileges;
mysql> exit;   

方法二:

在mysql系統外,使用mysqladmin
mysqladmin -u root -p password "test123"
Enter password: 【輸入原來的密碼】

2.不知道原來的myql的root的密碼

①.跳過密碼啟動

mysqld_safe --skip-grant-tables &

②.重設密碼

# 直接輸入mysql,進入mysql
mysql
mysql> use mysql;
mysql> UPDATE user SET authentication_string=password("test123") WHERE user='root';   
mysql> flush privileges;
mysql> exit;     

③.重新啟動mysql

systemctl restart mysql

二.允許外部訪問

1.設定允許訪問

# password是資料庫密碼
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'password' WITH GRANT OPTION;

FLUSH PRIVILEGES;

2.使用navicat檢測一下,如果還是不能連線,可能是防火牆限制了。需要在防火牆裡面加開放資料庫埠的規則。先檢視一下目前的防火牆,此時沒有放開3306埠!

firewall-cmd --list-all

[root@iZhp3di673f3rx1g5d9dfdZ soft]# firewall-cmd --list-all 
public
  target: default
  icmp-block-inversion: no
  interfaces: 
  sources: 
  services: dhcpv6-client ssh
  ports: 20/tcp 21/tcp 22/tcp 80/tcp 8888/tcp 39000-40000/tcp
  protocols: 
  masquerade: no
  forward-ports: 
  source-ports: 
  icmp-blocks: 
  rich rules: 

3.開放3306埠

firewall-cmd --permanent --add-port=3306/tcp

4.重啟防火牆

service firewalld restart

5.檢視3306埠是否開放

firewall-cmd --query-port=3306/tcp

[root@iZhp3di673f3rx1g5d9dfdZ soft]# firewall-cmd --query-port=3306/tcp
yes

6.再次檢視現在防火牆

firewall-cmd --list-all

[root@iZhp3di673f3rx1g5d9dfdZ soft]# firewall-cmd --list-all 
public
  target: default
  icmp-block-inversion: no
  interfaces: 
  sources: 
  services: dhcpv6-client ssh
  ports: 20/tcp 21/tcp 22/tcp 80/tcp 8888/tcp 39000-40000/tcp 3306/tcp
  protocols: 
  masquerade: no
  forward-ports: 
  source-ports: 
  icmp-blocks: 
  rich rules: 

7.此時就可以遠端連線了

站在巨人肩膀上摘蘋果

https://blog.csdn.net/qq_35070711/article/details/70860014

https://www.cnblogs.com/yybrhr/p/9810375.html