阿里雲ecs服務器在docker上安裝mysql5.6 遠程連接出錯access denied for user root

  1. 首先我的錯誤是這樣的
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
  1. 進入mysql容器內部
docker exec -it 容器id bash
  1. mysql -uroot -p123 進入了數據庫
  2. 執行如圖在這裏插入圖片描述
  3. select User,Host,authentication_string from user;
    在這裏插入圖片描述
    我這裏給root開放了所有主機的連接mysql權限 %的意思,大家可能只有root localhost
  4. 開放權限的語句
    在這裏插入圖片描述
    identified by 後面的是root對應的認證密碼。
select User,Host,authentication_string from user;
flush privileges; 

這句的意思是從mysql數據庫的grant表中重新加載權限數據
因爲MySQL把權限都放在了cache中,所以在做完更改後需要重新加載。
8. 現在就可以連接上了
9. 在這裏插入圖片描述

用到的一些語法以及命令

顯示錶結構 desc 表名;
顯示錶列 show columns from 表名;
docker服務重啓

  1. 守護進程重啓
    sudo systemctl daemon-reload
  2. 重啓docker服務
    sudo systemctl restart docker
  3. 關閉docker
    sudo systemctl stop docker
  4. centos7開放端口
firewall-cmd --permanent --zone=public --add-port=3306/tcp

firewall-cmd --reload

在這裏插入圖片描述

注意 如果用的是阿里雲ecs 需要開放安全組mysql3306端口號。在這裏插入圖片描述

發佈了81 篇原創文章 · 獲贊 10 · 訪問量 1萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章