docker 安装mysql

网友投稿 247 2022-10-24

docker 安装mysql

docker 环境 是 CentOS 8.1

拉取镜像

docker pull mysql:8.0.21

在宿主机创建持久化 mysql data 及mysql.cnf 数据目录和配置文件目录 日志目录

mkdir -p /docker-root/mysql/conf.d mkdir -p /docker-root/mysql/data mkdir -p /docker-root/mysql/logs

如果是liunx系统 添加配置文件 /docker-root/mysql/conf.d 目录下加配置文件 mysql.cnf 内容如下

[mysqld] lower_case_table_names=1

运行容器

docker run --name mysql_docker --restart=always -d -p 3306:3306 -v /docker-root/mysql/conf.d:/etc/mysql/conf.d -v /docker-root/mysql/logs:/logs -v /docker-root/mysql/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 mysql:8.0.21

命令说明

run 运行一个docker容器 --name 后面这个是生成的容器的名字mysql_docker -p 3306:3306 表示这个容器中使用3306(第二个)映射到本机的端口号也为3306(第一个) -e MYSQL_ROOT_PASSWORD=123456 初始化root用户的密码 -d 表示使用守护进程运行,即服务挂在后台 -v 表示挂载宿主机目录 到容器目录 conf.d 配置目录 logs 日志目录 data 数据目录

进入MySQL容器,

docker exec -it mysql_docker /bin/bash

登陆mysql

mysql -u root -p Enter password: #输入 初始化密码 123456 Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 9 Server version: 8.0.20 MySQL Community Server - GPL Copyright (c) 2000, 2020, Oracle and/or its affiliates. All rights reserved. Oracle is a registered trademark of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective owners. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

1,容器中登录mysql,查看mysql的版本

mysql> status; mysql Ver 8.0.20 for Linux on x86_64 (MySQL Community Server - GPL)

2,进行授权远程连接(注意mysql 8.0跟之前的授权方式不同)授权

mysql> GRANT ALL ON *.* TO 'root'@'%';

刷新权限

mysql> flush privileges;

此时,还不能远程访问,因为Navicat只支持旧版本的加密,需要更改mysql的加密规则

更改加密规则

mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'password' PASSWORD EXPIRE NEVER;

更新root用户密码

mysql> ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'MySQL2019&';

刷新权限

mysql> flush privileges;

OK,设置完成,再次使用 Navicat 连接数据库

退出mysql数据库

mysql> exit;

退出当前mysql容器

exit;

优化mysql所用内存

通过docker查看容器使用内存情况

docker stats

一般情况下,默认装的Mysql是8.0以上,占用内存在350M以上,这个对于小机器来说,占比还是比较大的,可以优化。

进入文件夹

cd /home/docker/mysql/conf.d/

查看 .cnf 文件,如果没有,随便新建个,例如

vim my.cnf

输入内容,并保存

[mysqld] performance_schema = OFF

重启mysql 容器

docker restart mysql 容器的id

再查看

docker stats

清理linux中buff/cache过大的方法

第一步:sync先同步一下

sync

第二步:清cache

echo 3 > /proc/sys/vm/drop_caches

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:SpringBoot特点之依赖管理和自动装配(实例代码)
下一篇:MiniGUI与嵌入式系统的关系 MiniGUI移植的过程
相关文章

 发表评论

暂时没有评论,来抢沙发吧~