以下為ubuntu20.04環境,默認已安裝docker,沒安裝的網上隨便找個教程就好了
- 拉去mysql鏡像
docker pull mysql
這樣是默認拉取最新的版本latest
這樣是指定版本拉取
docker pull mysql:5.7
查看已安裝的mysql鏡像
docker images
通過鏡像生成容器
docker run -d -p 3000:3306 -e MYSQL_ROOT_PASSWORD=123456 -v /media/rice/文件/水利數據/DB-GPT-Dec/docker/examples/sqls/:/opt/files/ --name zys-sql mysql
注意3306不能改,這個是內部的端口號,必須是3306,否則外部會連接不到里面,左邊的3000可以改成任意沒被占用的端口號,外部連接的時候是輸入左邊的端口號的,-v參數是連接共享文件夾,自行選擇,左邊是主機文件夾路徑,右邊是容器內路徑
重啟一下容器,不然可能概率性出現登錄不進mysql的情況
docker restart zys-sql
進入sql容器
docker exec -it zys-sql bash
在容器內輸入,然后輸入密碼
mysql -uroot -p
設置一下權限,這樣外面才能訪問mysql,否則會無法連接
那個密碼是創建容器的時候設置的密碼
alter user 'root'@'%' identified with mysql_native_password by '123456';
然后刷新一下權限
flush privileges;
然后用navicat進行連接測試
輸入完后點擊左下角 Test Connection,顯示連接成功就是ok了
查看mysql內部的字符格式
show variables like 'character%';
基本都是這樣的,這個latin1格式是不支持mysql輸入中文的,會導致亂碼
運行這句,把字符格式設置為utf8,這樣數據庫的中文就不是亂碼了
set names utf8;
改完后如下