
MySql安装
2025/6/20大约 1 分钟
1. 创建目录mysql
用于存放后面的相关东西。
sudo mkdir -p /data/mysql/datadir /data/mysql/logs /data/mysql/conf.d
sudo chown -R $USER:$USER /data/mysql/
2. 添加配置文件my.cnf
vi /data/mysql/conf.d/my.cnf
内容如下:
[mysqld]
pid-file = /var/run/mysqld/mysqld.pid
socket = /var/run/mysqld/mysqld.sock
datadir = /var/lib/mysql
#log-error = /var/log/mysql/error.log
# By default we only accept connections from localhost
#bind-address = 127.0.0.1
# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0
character_set_server=utf8mb4
character_set_filesystem=utf8mb4
collation-server=utf8mb4_unicode_ci
init-connect='SET NAMES utf8mb4'
init_connect='SET collation_connection = utf8mb4_unicode_ci'
skip-character-set-client-handshake
3. 拉取Mysql版本为5.7的镜像
docker pull mysql:5.7
4. 运行容器
docker run --restart=always --name mysql5.7 -p 3306:3306 -v /etc/timezone:/etc/timezone -v /etc/localtime:/etc/localtime -v /data/mysql/datadir:/var/lib/mysql -v /data/mysql/logs:/logs -v /data/mysql/conf.d/my.cnf:/etc/mysql/mysql.conf.d/mysqld.cnf -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.7
命令说明:
-p 3306:3306:将容器的 3306 端口映射到主机的 3306 端口。
-v /etc/timezone:/etc/timezone -v /etc/localtime:/etc/localtime : Docker容器时间与主机时间保持一致
-v /data/mysql/datadir:/var/lib/mysql : 将主机mysql下的datadir目录挂载到容器的 /var/lib/mysql
-v /data/mysql/logs:/logs : 将主机mysql目录下的 logs 目录挂载到容器的 /logs
-v /data/mysql/conf.d/my.cnf:/etc/mysql/mysql.conf.d/mysqld.cnf 将主机mysql目录下的 conf.d/my.cnf 挂载到容器的 /etc/mysql/mysql.conf.d/mysqld.cnf
-e MYSQL_ROOT_PASSWORD=123456:初始化 root 用户的密码。
5. 查看容器启动情况
docker ps
6. 连接Mysql数据库
mysql -h127.0.0.1 -uroot -p123456
7. 新建库并设置用户访问权限
新建数据库qData
create database qData;
创建用户testuser,可以远程访问
create user testuser@'%' identified by 'test123';
设置用户testuser可在远程访问访问库qData
GRANT ALL PRIVILEGES ON qData.* TO testuser;
FLUSH PRIVILEGES;
- 使用 Mysql 管理工具(例如 Navcat),打开 qData 数据库,导入项目中的
sql/mysql/Mysql.sql
脚本。