mysql重設密碼及允許遠端訪問
阿新 • • 發佈:2020-12-03
一.重設密碼
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: