Docker安裝Mysql


1、搜索鏡像

docker search mysql

2、拉取鏡像

docker pull mysql

3、查看鏡像

docker images

4、創建目錄

mkdir -p /software/mysql/logs
mkdir -p /software/mysql/data
mkdir -p /software/mysql/conf
mkdir -p /sofrware/mysql/mysql-files

 

5、docker運行命令相關參數

–name:容器名,此處命名為mysql
-e:配置信息,此處配置mysql的root用戶的登陸密碼
-p:端口映射,此處映射 主機3306端口 到 容器的3306端口
-d:源鏡像名,此處為 mysql
-v:主機和容器的目錄映射關系,":"前為主機目錄,之后為容器目錄
不建立目錄映射
docker run -p 3306:3306 --name mysql  \
-e MYSQL_ROOT_PASSWORD=123456 \
-d mysql

建立目錄映射

  docker run -p 3306:3306 --name mysql \
  -v /software/mysql/conf:/etc/mysql \
  -v /software/mysql/logs:/var/log/mysql \
  -v /software/mysql/data:/var/lib/mysql \
  -v /software/mysql/mysql-files:/var/lib/mysql-files \
  -e MYSQL_ROOT_PASSWORD=123456 \
  -d mysql

-e MYSQL_ROOT_PASSWORD        :設置mysql密碼
-v /home/mysql/:/var/lib/mysql:掛載磁盤實現數據持久化
--lower_case_table_names=1    :忽略大小寫,docker mysql默認區分大小寫的
注:參數順序一定要對,--lower_case_table_names=1要加在鏡像名后面,鏡像名前面是參數,后面是mysql配置,不然會報錯

 lower_case_table_names=1 只能在初始化時配置,不然會報

6、使用目錄映射

 

7、查看運行

docker ps

8、進入容器控制台

docker exec -it mysql bash

docker exec :在運行的容器中執行命令
語法
docker exec [OPTIONS] CONTAINER COMMAND [ARG...]
OPTIONS說明:
-d :分離模式: 在后台運行
-i :即使沒有附加也保持STDIN 打開
-t :分配一個偽終端

9、進入數據庫,沒有密碼

mysql -h 127.0.0.1 -u root -p

 

 10、查詢mysql版本

select version();

 11、修改用戶名

ALTER user 'root'@'localhost' IDENTIFIED BY 'Test1234567!'

12、查看用戶名、密碼

select host,user,authentication_string from mysql.user;

13、修改訪問

update mysql.user set host='%' where user='root';

 14、查看docker 信息

docker inspect mysql

 15、創建遠程訪問用戶

創建用戶
create user test@'%' identified  by 'Test1234567!';
授權
grant all privileges on *.* to test@'%' with grant option;
刷新
flush privileges;

報錯

 

 

因為mysql8使用的是caching_sha2_password加密規則,最簡單的方法是修改遠程連接用戶的加密規則:
ALTER USER 'test'@'%' IDENTIFIED WITH mysql_native_password BY 'Test1234567!';

  ALTER USER 'test'@'%' IDENTIFIED BY 'Test1234567!' PASSWORD EXPIRE NEVER;
  ALTER USER 'test'@'%' IDENTIFIED WITH mysql_native_password BY 'Test1234567!';

  FLUSH PRIVILEGES;

 

 

 

16、成功連接

 

 

 

 

 

錯誤:

mysqld: Error on realpath() on '/var/lib/mysql-files' (Error 2 - No such file or director

解決方法:

      當指定了外部配置文件與外部存儲路徑時,也需要指定 /var/lib/mysql-files的外部目錄,

  所以在主機新建/software/mysql/mysql-files目錄,

  在啟動容器時 需要加上

  -v /software/mysql/mysql-files:/var/lib/mysql-files \

 

注:

mysql在linux中區分大小寫

show variables like '%lower_case_table_names%';

 

 值為1,表示是大小寫不敏感,而linux環境的mysql是0. 

修改方法: 
1. 找到mysql的安裝位置 
2. 找到主目錄下的my.ini配置文件 
3. 在[mysqld]節點下添加lower-case-table-names=0 
4. 重啟mysql服務

 docker中修改my.cnf配置文件

1、進入容器

docker exec -it 容器ID /bin/bash

2、進入目錄

cd /etc/mysql
如果不安裝vim在使用vim的時候會報找不到,在修改docker中mysql的配置文件,無法使用vi命令。
apt-get update
或 apt
-get install vim

3、修改

vi my.cnf

4、退出容器

如果要退出bash有2種操作:1)Ctrl + d 退出並停止容器;2)Ctrl + p + q 退出並在后台運行容器;

5、重啟容器

docker restart 容器ID

 

 

注注注:

 # 在此目錄找到nginx容器的配置文件

find ./ -name nginx.conf

 

 

 

 









免責聲明!

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



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