docker 安裝mysql8


環境

ubuntu20.04
docker20.10.8
mysql 8.0.26

拉取鏡像

sudo docker pull mysql:8.0.26

創建數據目錄和配置文件

在宿主機創建放置mysql的配置文件的目錄和數據目錄,並且進行授權

sudo mkdir -p /usr/mysql/conf /usr/mysql/data /var/log/mysql
sudo chmod -R 755 /usr/mysql/ /var/log/mysql

創建配置文件

vim /usr/mysql/conf/my.cnf

添加以下內容到上述創建的配置文件中

[client]
#socket = /usr/mysql/mysqld.sock
default-character-set = utf8mb4

[mysqld]
#pid-file        = /var/run/mysqld/mysqld.pid
#socket          = /var/run/mysqld/mysqld.sock
#datadir         = /var/lib/mysql
#socket = /usr/mysql/mysqld.sock
#pid-file = /usr/mysql/mysqld.pid

datadir  = /usr/mysql/data

general_log = 1
general_log_file = /var/log/mysql/access.log
log-error = /var/log/mysql/error.log

character_set_server = utf8mb4
collation_server = utf8mb4_bin
secure-file-priv= NULL
# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0
# Custom config should go here
!includedir /etc/mysql/conf.d/

啟動創建容器

sudo docker run -itd --name=mysql -v /usr/mysql/conf/my.cnf:/etc/mysql/my.cnf -v /usr/mysql/data:/usr/mysql/data -v /var/log/mysql:/var/log/mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 mysql

參數解釋: -v : 掛載宿主機目錄和 docker容器中的目錄,前面是宿主機目錄,后面是容器內部目錄 -d : 后台運行容器 -p 映射容器端口號和宿主機端口號 -e 環境參數,MYSQL_ROOT_PASSWORD設置root用戶的密碼

查詢容器

sudo docker ps -a

配置遠程的Navicat連接

進入容器內部
sudo docker exec -it mysql /bin/bash
連接mysql
mysql -uroot -p123456
使用mysql庫
use mysql;
修改訪問主機以及密碼等,設置為所有主機可訪問
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '123456';
刷新
flush privileges;

使用Navicat連接數據庫時就可以正常連接了。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM