Docker安装mysql
注意:启动完容器后(第五步)直接使用mysql -h localhost -u root -p连接会报错:“这里直接设置密码123456,可以不设置,默认会生成密码,查询初始密码并修改。先输入exit退出mysql,再输入exit退出容器。42d6d493d778为上图mysql容器id。“-bash: mysql: 未找到命令”
目录
一、查看可用的mysql镜像
docker search mysql
一般STARS最高的就是官方的,也可以通过MySQL 镜像库地址:https://hub.docker.com/_/mysql?tab=tags
二、拉取 MySQL 镜像
获取最新的镜像:
docker pull mysql:latest
三、查看已安装镜像
docker images
四、运行容器
docker run -itd --name mysql-test -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 -v /data/mysql/data:/var/lib/mysql mysql --lower_case_table_names=1
--name 启动容器设置容器名称为mysql-test
-p 3306:3306 :映射容器服务的 3306 端口到宿主机的 3306 端口,外部主机可以直接通过 宿主机ip:3306 访问到 MySQL 的服务。
-v 设置容器目录/var/lib/mysql映射到本地目录/data/mysql/data
--lower_case_table_names=1 忽略大小写敏感,不然linux下mysql表明是默认大小写敏感
-
lower_case_file_system:表示当前系统文件是否大小写敏感(ON为不敏感,OFF为敏感),只读参数,无法修改。
-
lower_case_table_names:表示表名是否大小写敏感,可以修改。
注意:这里直接设置密码123456,可以不设置,默认会生成密码,查询初始密码并修改:
#查询初始密码
grep 'password' /var/log/mysqld.log
#修改密码
ALTER USER 'root'@'localhost' IDENTIFIED BY 'new_password';
#刷新权限
FLUSH PRIVILEGES;
五、安装成功
六、启动mysql
注意:启动完容器后(第五步)直接使用mysql -h localhost -u root -p连接会报错:“-bash: mysql: command not found” 或者“-bash: mysql: 未找到命令”,需要先进入容器再连接mysql:
#docker exec -it 【容器id】 /bin/bash
docker exec -it 42d6d493d778 /bin/bash
mysql -h localhost -u root -p
查看数据库修改成功:
show global variables like '%lower_case%';
七、退出容器
先输入exit退出mysql,再输入exit退出容器。
八、设置docker启动时启动mysql
docker update 42d6d493d778 --restart=always
注意:42d6d493d778为上图mysql容器id。
九、Navicat连接数据库
报错10060和10061问题
解决办法:
1、首先查看3306端口有没有开通
[root@hadoop ~]# sudo firewall-cmd --permanent --add-port=3306/tcp
2、没有开放则添加3306端口
[root@hadoop ~]# firewall-cmd --zone=public --add-port=3306/tcp --permanent
3、添加端口后刷新防火墙或者关闭防火墙
[root@hadoop ~]# firewall-cmd --reload
[root@hadoop ~]# sudo systemctl stop firewalld
4、再次使用Navicat连接数据库即可
更多推荐
所有评论(0)