起因

最开始是因为出差要跑公司的项目,为了省事在笔记本上装了Docker Desktop for Windows和docker版本的mysql,因为docker依赖hyper-v虚拟化,所以我就把他打开了。

然后。。。我就发现,mumu模拟器居然不支持在开启hyper-v环境下启动,(╯‵□′)╯︵┻━┻,于是我几番折腾,找到了BlueStacks Hyper-V(测试版本)

当时我非常开心,以为终于找到了解决方案,于是开始安装FGO,运行,闪退。。。运行,闪退。。。。(╯‵□′)╯︵┻━┻

无果,"[docker] 一遍、死んで见る",docker 卒!

vagrant搞起!谁也阻挡不了我玩FGO,现在可是无限池!!!

开始安装吧!はじまるよ

sudo apt install mysql-server

# 记得做好备份
sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf
# 示例如下
[mysqld]
skip-grant-tables
lower_case_table_names=1
user		= mysql
pid-file	= /var/run/mysqld/mysqld.pid
socket	= /var/run/mysqld/mysqld.sock
port		= 3306
datadir	= /var/lib/mysql
bind-address		= 0.0.0.0
mysqlx-bind-address	= 0.0.0.0
key_buffer_size		= 16M
myisam-recover-options  = BACKUP
log_error = /var/log/mysql/error.log
max_binlog_size   = 100M

重启mysql服务

sudo service mysql restart

登录mysql,将root用户密码重置为空

mysql -u root

# 登录mysql后
use mysql
update user set authentication_string='',host='%' where User='root';
update user set plugin="mysql_native_password";
flush privileges;
exit

修改配置文件后,重启服务

sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf
[mysqld]
# skip-grant-tables 修改这一行就行

sudo service mysql restart

登录mysql

mysql -u root -p
# 这时候依旧不需要输入密码,直接回车,接下来要设置密码了
alter user 'root'@'%' identified by 'NewP@ssword';
flush privileges;
exit

# 再登录就需要输入密码了
mysql -u root -p
show databases;

# 如果到这里一切正常,那就没什么问题了
# 如果提示 The user specified as a definer ('mysql.infoschema'@'localhost') does not exist
# 请尝试执行一下操作
mysql -u root -p
update user set plugin = 'caching_sha2_password' where user='mysql.sys' or user='mysql.infoschema';
exit

结语

安装的过程中折腾了好几次吧,不知道为啥我用sudo居然不能启动mysql服务,必须使用root用户,就很奇怪,估计和vagrant环境有关,也懒得处理这个问题了。希望能帮助到其他学习的小伙伴,帮不上别人就权当笔记了,毕竟是我2020年下半年第一篇blog XD!