工作环境是macOS
docker pull mysql #默认最新版本 8.0+
sudo mkdir /usr/local/mysqlData/db/conf
sudo mkdir /usr/local/mysqlData/db/data
sudo mkdir /tmp/mysql/mysql-files
#顺便把权限做下
chmod 777 /usr/local/mysqlData/db/conf
...
docker run -itd -p 3307:3306 —name mysql-dev -v /usr/local/mysqlData/db/conf:/etc/mysql -v /usr/local/mysqlData/db/data:/var/lib/mysql -v /tmp/mysql/mysql-files:/var/lib/mysql-files/ -e MYSQL_ROOT_PASSWORD=123456 mysql
需要注意!这里把mysql的3306端口映射到了宿主机的3307
如果一切正常,那么可以看到:
如果启动失败了,可以在客户端里看错误日志:
然后有针对的处理下就好。
docker exec -it mysql-dev bash
登陆下mysql:
这个时候,如果出现1045的错误 可以尝试
mysql -hlocalhost -uroot -p123456
select user,host,authentication_string from mysql.user;
会出现:
如果没有第一行,可以尝试下:
grant all PRIVILEGES on *.* to root@'%' WITH GRANT OPTION;
如果爆出了没有grant的权限,可以insert一个
insert user (user, host, ssl_cipher, x509_issuer, x509_subject) values('root', 'localhost', '', '', '');
grant all PRIVILEGES on *.* to root@'%' WITH GRANT OPTION;
ALTER user 'root'@'%' IDENTIFIED BY '123456' PASSWORD EXPIRE NEVER;
ALTER user 'root'@'%' IDENTIFIED WITH mysql_native_password BY '123456';
FLUSH PRIVILEGES;
搞定!可以用客户端测试下了
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。