背景
某个项目使用的是 MySQL 8 ,但是我的 mini 云服务上是 MySQL5.7 版本的,自然不合适。因为高版本的 MySQL 支持很多高级的函数,比如递归 With ... AS ...
反正自己服务器上 MySQL 没啥东西,所以直接卸载重装。
卸载原来的 MySQL
如果你原来没有安装 MySQL ,那么可以直接省略。如果安装了,参照如下:
- 执行 yum remove mysql mysql-server mysql-libs mysql-server
- 执行 rm -rf /var/lib/mysql
- 执行 rpm -qa | grep mysql
- 将第三步找出来的RPM包,执行 yum remove 包名进行卸载
安装 MySQL
选择自己需要安装的版本,我们可以在mysql官方包网址选择我们需要的包,本次我选择的是(mysql80-community-release-el7-2.noarch.rpm)
执行 wget dev.mysql.com/get/mysql80…
下载完成后,执行 yum localinstall mysql80-community-release-el7-2.noarch.rpm来安装下载的包
执行 sudo yum install mysql-server安装MySQL服务
接下来就是等待下载完成,中途需要输下y
安装完成后执行mysql可能会出现 ERROR 2002 (HY000): Can’t connect to local MySQL server through socket ‘/var/lib/mysql/mysql.sock’ (2) 这样的错误,这是由于文件权限导致的,我们执行 sudo chown -R root:root /var/lib/mysql来解决 (权限改为当前用户)
修改密码
- less /var/log/mysqld.log
- 登录后马上修改:ALTER USER 'root'@'localhost' IDENTIFIED BY 'new password';
配置区分大小写
注意一定要在启动 MySQL 之前配置好:
在MySQL配置文件( /etc/my.cnf )中添加 lower_case_table_names=1
如果启动之后再配置重启,是不生效的。需要删除工作目录,然后再配置一遍密码再配置大小写
- 删除数据目录,即删除 /var/lib/mysql 目录
- 在MySQL配置文件( /etc/my.cnf )中添加 lower_case_table_names=1
- 启动 MySQL
但是删除数据目录了,重置密码/允许远程登录又得来一遍「参考上面的步骤」
允许远程登录
- 进入mysql
- use mysql;
- select host, user, plugin from user; ##如果有 % | root 表示可以远程方法,如果没有
- update user set host='%' where user='root';
- FLUSH PRIVILEGES;
总结
区分大小写是代码运行踩坑后,才配置的。
允许远程登录是重装 MySQL 后,本地不能登录踩坑的。
修改密码也是重装涉及到的问题。
最重要的是在启动 MySQL 初始化之前,区分大小写得配置好,不然只能重新来一遍。