在hub.docker.com上面,MySQL,有兩個,一個MySQL,有個MySQL-Server,后面一個是優化過后的
docker pull mysql/mysql-server
MySQL端口默認是3306:映射到3306
docker run -d -p 3306:3306 --name mysql01 mysql/mysql-server
-p 3306:3306:將容器的 3306 端口映射到主機的 3306 端口。
然后,用Navicat連接MySQL,是連接不上去的,因為沒有在MySQL上加用戶和設置
docker logs mysql01
打印日志,可以看到里面默認的密碼 ROOT PASSWORD
-ek1icEPaL@nwIGub]0K3lub93c
登錄進去把密碼改了
借用這面這個命令,進入系統環境
docker exec -it mysql01 bash
mysql -uroot -p
然后出入密碼 -ek1icEPaL@nwIGub]0K3lub93c
以上只能第一次的時候,用這個能進來,如果下面創建了新的賬號,就應該用新的進來
mysql -utest -p 這個test是自己設定的
密碼是自己設定的
閱讀下去就知道了
use mysql
會提示我們改密碼
SET PASSWORD FOR 'root'@'localhost' = PASSWORD('password123');
上面這種方式貌似不行,使用的是下面這種:
輸入ALTER USER 'root'@'localhost' IDENTIFIED BY '新密碼';
新密碼是:123456
修改完密碼之后,use mysql,選擇數據庫
select user,host from user;
root用戶只能通過localhost來登錄,可以修改,但是一般不讓別人登錄,因為不安全
我們只能自己起一個賬號
CREATE USER 'test'@'%' IDENTIFIED BY 'pwd123456';
GRANT ALL PRIVILEGES ON *.* TO 'test'@'%' WITH GRANT OPTION;
用Navicat登錄的時候,就用test 密碼是pwd132456,來連接
我把上面改成了bingle,密碼是123456
這樣之后,沒有指定字符集,可能會出現亂碼的情況,所以
show variables like '%char%';
exit;退出mysql
再用Navicat連接mysql出現這種提示:
ALTER USER 'root'@'localhost' IDENTIFIED BY '你的mysql密碼' PASSWORD EXPIRE NEVER; #修改加密規則 ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '你的mysql密碼'; #修改密碼 FLUSH PRIVILEGES; #刷新數據
然后就可以了:
連接上之后:
cd /etc
ls
cat my.cnf
yum install vim 把編輯器安裝起來
出現了5000%多,這就出問題了
取消重新開始
這里出現這個,選擇yes,繼續下載
安裝成功之后,輸入vim就可以看到這個命令了
可以按住shift+: 然后輸入:q!
進來之后,按道理是:q! 強制退出不做保留
ls
cd /etc
ls
vim my.cnf
這樣就用vim打開了my.cnf
修改MYSQL 默認字符集:
添加到my.cnf
輸入i就可以在里面編輯下面內容了
[mysqld]
character-set-server=utf8
[client]
default-character-set=utf8
[mysql]
default-character-set=utf8
先按ESC,然后按下shift+:出現:之后,輸入wq,然后回車,就可以了
然后
cat my.cnf 來看一下
可以用容器重啟的方式重啟mysql,一旦我們出現錯誤重啟容器,重啟不了的話,沒有啟動,就么有辦法通過exec進入到這個容器,所以就比較危險