1、拉取鏡像
docker pull mysql:8.0.20
?2、啟動鏡像
docker run -p 3307:3306 --name mysql8 -e MYSQL_ROOT_PASSWORD=123456 -d mysql:8.0.20
?檢查是否啟動成功
docker ps
3、配置掛載
創(chuàng)建掛載目錄(請檢查保證創(chuàng)建成功)
mkdir -p /docker/mysql8.0.20/
拷貝配置文件到創(chuàng)建的目錄下
docker cp mysql:/etc/mysql /docker/mysql8.0.20/
ps:執(zhí)行這個cp?命令沒必要糾結(jié)名稱是mysql還是mysql8.0.20,不會影響你這個啟動。
4、刪除原有的容器
docker stop mysql8
5、啟動mysql掛載配置文件,數(shù)據(jù)持久化到宿主主機
新增my.cnf
進入到上面掛載目錄下、因為已經(jīng)做了cp復(fù)制。到目錄下新增
cd /docker/mysql8.0.20/mysql/conf.d
vim my.cnf
內(nèi)容(一定不能復(fù)制錯下面的內(nèi)容、保存后記得檢查是否一致):
[mysqld]
user=mysql
character-set-server=utf8
default_authentication_plugin=mysql_native_password
secure_file_priv=/var/lib/mysql
expire_logs_days=7
sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION
max_connections=1000
[client]
default-character-set=utf8
[mysql]
????????創(chuàng)建一個sh腳本、把docker啟動mysql的命令放到腳本里面。因為后續(xù)如果想找到當時啟動mysql時候所設(shè)置的一些參數(shù)和信息、可以查看這個腳本里面是怎么寫的。(容器啟動有些參數(shù)如果不記錄、想找的時候忘記當時寫了什么參數(shù)、很難受有木有)
vim docker_insert_mysql8.0.20.sh
#!/bin/sh
docker run \
-p 3307:3306 \
--name mysql8 \
--privileged=true \
--restart unless-stopped \
-v /docker/mysql8.0.20/mysql:/etc/mysql \
-v /docker/mysql8.0.20/logs:/logs \
-v /docker/mysql8.0.20/data:/var/lib/mysql \
-v /etc/localtime:/etc/localtime \
-e MYSQL_ROOT_PASSWORD=123456 \
-d mysql:8.0.20
-p 端口映射 【這里有個特殊的地方是把3306映射給了3307、后續(xù)鏈接數(shù)據(jù)庫的時候用3307鏈接不用3306】
--name mysql8 ?名稱是mysql8
--privileged=true 掛載文件權(quán)限設(shè)置
--restart unless-stopped 設(shè)置 開機后自動重啟容器
-v /docker/mysql8.0.20/mysql:/etc/mysql \ 掛載配置文件【路徑是上面創(chuàng)建的掛載路徑】
-v /docker/mysql8.0.20/logs:/logs \ ?掛載日志【路徑是上面創(chuàng)建的掛載路徑】
-v /docker/mysql8.0.20/data:/var/lib/mysql \ 掛載數(shù)據(jù)文件 持久化到主機【路徑是上面創(chuàng)建的掛載路徑】
-v /etc/localtime:/etc/localtime 容器時間與宿主機同步
-e MYSQL_ROOT_PASSWORD=123456 設(shè)置密碼
-d mysql:8.0.20 后臺啟動,mysql
執(zhí)行docker_insert_mysql8.0.20.sh,root@ubuntu:/docker/mysql8.0.20/mysql# sh docker_insert_mysql8.0.20.sh
sh docker_insert_mysql8.0.20.sh
使用docker ps檢查是否成功。
6、配置鏈接信息
進入mysql8容器
docker exec -it mysql8 bash
登錄mysql
mysql -u root -p123456
設(shè)置權(quán)限(為root分配權(quán)限,以便可以遠程連接)
grant all PRIVILEGES on *.* to root@'%' WITH GRANT OPTION;
use mysql;
update user set host='%' where user='root';
更新時查看root是不是多個賬戶,刪除一個再執(zhí)行更新操作。
select host, user from user;
DELETE FROM user WHERE user = 'root' AND host = 'localhost';
然后在宿主機登錄mysql。
?文章來源:http://www.zghlxwxcb.cn/news/detail-814287.html
?登錄成功!文章來源地址http://www.zghlxwxcb.cn/news/detail-814287.html
到了這里,關(guān)于Ubuntu安裝mysql8詳細步驟的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!