docker安装mysql
1.mysql5.6版本
1.1拉取镜像
docker pull mysql:5.6
1.2创建挂载目录
创建目录mysql,用于存放后面的相关东西。
mkdir -p /opt/mysql/data /opt/mysql/logs /opt/mysql/conf
1.3创建docker容器
docker run -d --name mysql \
-v /opt/mysql/data:/var/lib/mysql \
-v /opt/mysql/conf:/etc/mysql/conf.d \
-v /opt/mysql/logs:/logs \
-e MYSQL_ROOT_PASSWORD=123456 \
-p 3333:3306 \
mysql:5.6
这里指定了初识密码是123456
1.4配置文件
Mysql的配置文件:
!includedir /etc/mysql/conf.d/
我们已经将这个路径映射到本地了 /opt/mysql/conf
所以我们直接将配置放到本地这个目录就可以了.
新建配置文件
vim /opt/mysql/conf/utf8.cnf
添加不区分大小写1-不敏感,0-敏感
https://blog.csdn.net/vkingnew/article/details/80613043
意思是配置文件在这目录下
如果出现乱码可以添加
添加以下内容
#或者这个配置
#[mysqld]
#lower_case_table_names=1
[mysql]
default-character-set = utf8
[mysql.server]
default-character-set = utf8
[mysqld_safe]
default-character-set = utf8
[client]
default-character-set=utf8
[mysqld]
character-set-server=utf8
init_connect='SET NAMES utf8'
1.5重启容器
docker restart mysql
1.6新建用户
1.6.1 进入docker容器
docker exec -it mysql bash
查看版本
- 容器中:
mysql -V
- MySQL中:
select version();
或者status
1.6.2 创建账户,比如 mysql
我之所以创建用户发现是因为默认的root用户没登上.
如果你用root用户能远程登录,可以选择不创建.
授权
用户名:要赋给远程访问权限的用户名称
IP地址:可以远程访问的电脑的IP地址,所有的地址使用 %
登录MySQL
mysql -uroot -p123456;
create user 'mysql'@'%' identified by '000000';
https://www.jb51.net/article/31850.htm
1.6.3 赋予权限
with grant option这个选项表示该用户可以将自己拥有的权限授权给别人
grant all privileges on *.* to 'mysql'@'%' with grant option;
1.6.4改密码&授权超用户
flush privileges;
如果抱错参考:
https://blog.csdn.net/shenhonglei1234/article/details/84786443
https://blog.csdn.net/vin_1991216/article/details/82632710
exit 退出mysql
exit 退出容器
1.6.5重启容器
docker restart mysql
查看mysql日志
docker logs mysql
2.mysql5.7和mysql8版本
安装方式和上面一样
知识我们拉去和运行的镜像不是5.6了,而是5.7和8
docker pull mysql:5.7
# 最新的就是8版本
docker pull mysql:latest