- 首先我的錯誤是這樣的
access denied for user root@ip地址 (using password:YES) 1045
這裏using password 是yes 說明我們連接mysql的密碼是對的,但是是root拒絕訪問。
所以出現錯誤的原因就是root拒絕遠程連接,我們只要把root的權限設置所有遠程主機可以連接就可以了。
2. 我在docker 上運行容器的命令是這樣,密碼也設置了123
docker run -p 3306:3306 --name mysql -v /yzf/mysql/conf:/etc/mysql/conf.d -v /yzf/mysql/logs:/logs -v /yzf/mysql/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123 -d mysql:5.6
- 進入mysql容器內部
docker exec -it 容器id bash
mysql -uroot -p123
進入了數據庫- 執行如圖
select User,Host,authentication_string from user;
我這裏給root開放了所有主機的連接mysql權限 %的意思,大家可能只有root localhost- 開放權限的語句
identified by 後面的是root對應的認證密碼。
select User,Host,authentication_string from user;
flush privileges;
這句的意思是從mysql數據庫的grant表中重新加載權限數據
因爲MySQL把權限都放在了cache中,所以在做完更改後需要重新加載。
8. 現在就可以連接上了
9.
用到的一些語法以及命令
顯示錶結構 desc 表名;
顯示錶列 show columns from 表名;
docker服務重啓
- 守護進程重啓
sudo systemctl daemon-reload
- 重啓docker服務
sudo systemctl restart docker
- 關閉docker
sudo systemctl stop docker
- centos7開放端口
firewall-cmd --permanent --zone=public --add-port=3306/tcp
firewall-cmd --reload
注意 如果用的是阿里雲ecs 需要開放安全組mysql3306端口號。