docker安装mysql8和mysql5.7

打印 上一主题 下一主题

主题 983|帖子 983|积分 2949

1.docker安装mysql5.7,请点击此链接

2.docker安装mysql8并挂载数据卷

  1. docker pull mysql:8.0
  2. docker run --name mysql8 -e MYSQL_ROOT_PASSWORD=my-secret-pw -d mysql:8.0
  3. docker run --name mysql8 -e MYSQL_ROOT_PASSWORD=123456 -v /mqq/mysql8/datadir:/var/lib/mysql -d mysql:8.0
复制代码
这里,-v /data/mysql8/datadir:/var/lib/mysql 将主机上的/data/mysql8/datadir目次挂载到容器内的/var/lib/mysql,用于持久化数据。
请确保替换命令中的路径和暗码为您自己的实际路径和暗码。
3.docker安装mysql8并挂载数据卷日志设置文件

  1. docker run -p 3307:3306 --name mysql -e MYSQL_ROOT_PASSWORD=123456 -d mysql:8.0.20
  2. docker ps
  3. mkdir -p /mqq/mysql8.0.20/
  4. docker cp  mysql:/etc/mysql /mqq/mysql8.0.20/
  5. docker rm -f mysql
复制代码
  1. cd /mqq/mysql8.0.20/mysql/conf.d
  2. cat >  my.cnf << EOF
  3. [mysqld]
  4. user=mysql
  5. character-set-server=utf8
  6. default_authentication_plugin=mysql_native_password
  7. secure_file_priv=/var/lib/mysql
  8. expire_logs_days=7
  9. sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION
  10. max_connections=1000
  11. collation-server=utf8_general_ci
  12. [client]
  13. default-character-set=utf8
  14. [mysql]
  15. EOF
复制代码
  1. docker run \
  2. -p 3336:3306 \
  3. --name mysql8 \
  4. --privileged=true \
  5. --restart unless-stopped \
  6. -v /mqq/mysql8.0.20/mysql:/etc/mysql \
  7. -v /mqq/mysql8.0.20/logs:/logs \
  8. -v /mqq/mysql8.0.20/data:/var/lib/mysql \
  9. -v /etc/localtime:/etc/localtime \
  10. -e MYSQL_ROOT_PASSWORD=123456 \
  11. -d mysql:8.0.20
复制代码
  -p 端口映射 【后续链接数据库的时间用3336链接不消3306】
–name mysql8 名称是mysql8
–privileged=true 挂载文件权限设置
–restart unless-stopped 设置 开机后自动重启容器
-v /mqq/mysql8.0.20/mysql:/etc/mysql \ 挂载设置文件【路径是上面创建的挂载路径】
-v /mqq/mysql8.0.20/logs:/logs \ 挂载日志【路径是上面创建的挂载路径】
-v /mqq/mysql8.0.20/data:/var/lib/mysql \ 挂载数据文件 持久化到主机【路径是上面创建的挂载路径】
-v /etc/localtime:/etc/localtime 容器时间与宿主机同步
-e MYSQL_ROOT_PASSWORD=123456 设置暗码
-d mysql:8.0.20 背景启动,mysql
  1. docker ps
  2. docker exec -it mysql8 bash  #进入mysql容器
复制代码
  1. mysql -u root -p123456
复制代码
  1. grant all PRIVILEGES on *.* to root@'%' WITH GRANT OPTION;  #为root分配权限,以便可以远程连接
  2. use mysql
  3. update user set host='%' where user='root';
  4. #由于Mysql5.6以上的版本修改了Password算法,这里需要更新密码算法,便于使用Navicat连接
  5. grant all PRIVILEGES on *.* to root@'%' WITH GRANT OPTION;
  6. ALTER user 'root'@'%' IDENTIFIED BY '123456' PASSWORD EXPIRE NEVER;
  7. ALTER user 'root'@'%' IDENTIFIED WITH mysql_native_password BY '123456';
  8. FLUSH PRIVILEGES;
复制代码
  1. -- 创建新数据库 (替换your_database_name为你的数据库名)
  2. CREATE DATABASE school;
  3. -- 选择数据库
  4. USE school;
  5. -- 创建一个名为 class的表,包含三列:id, name, age
  6. CREATE TABLE Class1Grade1 (
  7.   id INT AUTO_INCREMENT PRIMARY KEY,
  8.   name VARCHAR(50) NOT NULL,
  9.   age INT NOT NULL
  10. );
  11. -- 插入数据
  12. INSERT INTO Class1Grade1 (name, age) VALUES ('Alice', 6);
  13. INSERT INTO Class1Grade1 (name, age) VALUES ('Bob', 6);
  14. INSERT INTO Class1Grade1 (name, age) VALUES ('Charlie', 7);
  15. INSERT INTO Class1Grade1 (name, age) VALUES ('马强', 7);
  16. INSERT INTO Class1Grade1 (name, age) VALUES ("刘洪", 7);
复制代码
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

乌市泽哥

金牌会员
这个人很懒什么都没写!
快速回复 返回顶部 返回列表