目录结构
1 | . |
conf/my.cnf
1 | [client] |
docker构建命令
1 | docker run \ |
如果mysqld: Can't read dir of '/etc/mysql/conf.d/' (OS errno 2 - No such file or directory)
将
-v /home/vagrant/docker/mysql/conf:/etc/mysql \
改成
-v /home/vagrant/docker/mysql/conf:/etc/mysql/conf.d \
不加 -v /data/mysql/mysql-files:/var/lib/mysql-files \ 会报错误
1 | mysqld: Error on realpath() on '/var/lib/mysql-files' (Error 2 - No such file or directory |
登录 Docker 中的 Mysql 存在两种情况
第一种(可行)
- 使用命令 docker exec -it mysql /bin/bash 进入容器
- 使用命令 mysql -uroot -p 按下 enter 再按 enter 直接登录到 Mysql 里面去,因为里面 root 用户对应的密码是空的
- 给 root 用户设置密码
1 | # 修改用户对应的密码 |
- 需要远程连接时,执行如下命令
1 | CREATE USER 'root'@'%' IDENTIFIED BY '用户密码'; |
- 创建出来的用户是没有任何创建数据库权限的,需要执行如下命令进行授权
1 | grant all privileges on *.* to 'root'@'%' with grant option; |
第二种(不可行)
- 在执行生成 mysql 容器的时候,我们设置了 mysql 初始密码的,使用那个密码,即可直接登录到 mysql
说明一下 Mysql 的配置 my.cnf
1 | [mysqld] |
问题
发现docker容器无法启动,报错如下:
1 | Failed to access directory for --secure-file-priv. Please make sure |
windows下:修改my.ini 在[mysqld]内加入secure_file_priv=/var/lib/mysql
linux下:修改my.cnf 在[mysqld]内加入secure_file_priv=/var/lib/mysql