docker下安装MySQL
在hub.docker.com上面,MySQL,有两个,一个MySQL,有个MySQL-Server,后面一个是优化过后的
docker pull mysql/mysql-server
MySQL端口默认是3306:映射到3306
docker run -d -p 3306:3306 --name mysql01 mysql/mysql-server
-p 3306:3306:将容器的 3306 端口映射到主机的 3306 端口。
然后,用Navicat连接MySQL,是连接不上去的,因为没有在MySQL上加用户和设置
docker logs mysql01
打印日志,可以看到里面默认的密码 ROOT PASSWORD
-ek1icEPaL@nwIGub]0K3lub93c
登录进去把密码改了
借用这面这个命令,进入系统环境
docker exec -it mysql01 bash
mysql -u root -p
然后出入密码 -ek1icEPaL@nwIGub]0K3lub93c
以上只能第一次的时候,用这个能进来,如果下面创建了新的账号,就应该用新的进来
mysql -utest -p 这个test是自己设定的
密码是自己设定的
阅读下去就知道了
use mysql
会提示我们改密码
SET PASSWORD FOR 'root'@'localhost' = PASSWORD('password123');
上面这种方式貌似不行,使用的是下面这种:
输入ALTER USER 'root'@'localhost' IDENTIFIED BY '新密码';
新密码是:123456
修改完密码之后,use mysql,选择数据库
select user,host from user;
root用户只能通过localhost来登录,可以修改,但是一般不让别人登录,因为不安全
我们只能自己起一个账号
CREATE USER 'test'@'%' IDENTIFIED BY 'pwd123456';
GRANT ALL PRIVILEGES ON *.* TO 'test'@'%' WITH GRANT OPTION;
用Navicat登录的时候,就用test 密码是pwd132456,来连接
我把上面改成了bingle,密码是123456
这样之后,没有指定字符集,可能会出现乱码的情况,所以
show variables like '%char%';
exit;退出mysql
再用Navicat连接mysql出现这种提示:
ALTER USER 'root'@'localhost' IDENTIFIED BY '你的mysql密码' PASSWORD EXPIRE NEVER; #修改加密规则 ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '你的mysql密码'; #修改密码 FLUSH PRIVILEGES; #刷新数据
然后就可以了:
连接上之后:
cd /etc
ls
cat my.cnf
yum install vim 把编辑器安装起来
出现了5000%多,这就出问题了
取消重新开始
这里出现这个,选择yes,继续下载
安装成功之后,输入vim就可以看到这个命令了
可以按住shift+: 然后输入:q!
进来之后,按道理是:q! 强制退出不做保留
ls
cd /etc
ls
vim my.cnf
这样就用vim打开了my.cnf
修改MYSQL 默认字符集:
添加到my.cnf
输入i就可以在里面编辑下面内容了
[mysqld]
character-set-server=utf8
[client]
default-character-set=utf8
[mysql]
default-character-set=utf8
先按ESC,然后按下shift+:出现:之后,输入wq,然后回车,就可以了
然后
cat my.cnf 来看一下
可以用容器重启的方式重启mysql,一旦我们出现错误重启容器,重启不了的话,没有启动,就么有办法通过exec进入到这个容器,所以就比较危险