拉取docker镜像
docker pull mysql/mysql-server
进入终端
mkdir创建需要存放文件的目录
进入到目录中执行mysql镜像启动命令
docker run --hostname=07d052e8f8af -v $PWD/conf:/etc/mysql/conf.d -v $PWD/logs:/logs -v $PWD/data:/mysql --env=MYSQL_ROOT_PASSWORD=123456 --env=PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin --env=MYSQL_UNIX_PORT=/var/lib/mysql/mysql.sock -p 3306:3306 --restart=no --runtime=runc -d mysql/mysql-server
执行docker命令容器启动成功mysql的一些文件地址路径挂载已经指向了本地
我创建了一个叫mysql的文件夹,执行完命令后生成3个目录分别是conf,data,logs用来用来存放mysql的配置文件,mysql的数据信息,mysql的日志信息
进入到conf文件夹下创建my.cnf文件
touch my.cnf
添加以下内容
[mysqld]
skip-name-resolve
character_set_server=utf8
datadir=/var/lib/mysql
server-id=1000
重启docker容器
docker restaet docker容器名称
启动后可以通过navicat去链接测试
如果出现下列错误
1045 - Access denied for user ‘root‘@‘172.17.0.1‘ (using password: YES)
正常来说直接改一下mysql的权限就好了,但是更改root用户的权限需要链接到mysql的客户端,如果你跟我一样,连接不上的话我们可以在my.cnf文件最下方添加以下命令,如果能连上跳过配置直接执行命令就好
skip-grant-tables
通过命令行进入MySQL的bin目录,输入“mysql -u root -p”(不输入密码),回车即可进入数据库。
执行use mysql,进入到mysql数据库
修改密码
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '新密码';
使密码生效
flush privileges;
选择数据库
use mysql;
再修改远程连接并生效
update user set host='%' where user='root';
执行提交命令,搞定!
flush privileges;
将my.cnf文件中添加的skip-grant-tables这个命令去掉,不去的话理论上来说你每次登陆mysql都没有密码,本人还没实践过
最后就可以使用root账号去登录mysql了
留言:本人也是第一次用mac系统,docker使用也并不熟练,可能有些细节并不到位留言会回,知无不言