金钱有价,数据无价,在进行练习操作时,万万记得备份数据
安装部分
在条件允许的情况下,特别建议使用二进制安装,不要使用网上的各种傻瓜式安装方法,可能不知道会有什么坑会在等你
下面引用一位大哥博客的傻瓜式安装方法
链接: [https://blog.csdn.net/qq_40550973/article/details/80721014]
检查系统cat /etc/os-release
检查系统位数getconf LONG_BIT
查询是否存在mysql文件find / -name mysql
如存在mysql文件,则全部清除find / -name mysql|xargs rm -rf;
开始安装mysql8.0rpm -Uvh https://repo.mysql.com/mysql57-community-release-el7-11.noarch.rpm
yum --enablerepo=mysql80-community install mysql-community-server
安装过程中可能会出现各种询问提示
询问文件大小
Total downlload size; Is this Ok ? Y
从文件中检索秘钥MySQL导入GPG
Importing GPG? Y
完成后,启动mysql8.0service mysqld start;
检查mysql是否正常启动service mysqld status;
查看root用户默认密码grep "A temporary password" /var/log/mysqld.log
密码的位置大约在for root@localhost XXXXXXXXX
找到默认密码后,单独记录,开始配置mysqlmysql_secure_installation
两次确认输入密码
您要安装验证密码插件吗?
secure enough.Would you like to setup VALIDATE PASSWORD plugin? Y
删除匿名用户吗?
Remove anonymous users?() Y
禁止远程root用户登录吗?
Disallow root login remotely? N
默认情况下,有个test数据库是否需要删除?
Remove test database and access to it? Y
是否马上重载特权表?并立即生效配置
Reload privilege tables now? Y
登录数据库mysql -u root -p
不允许远程访问/解除远程访问限制
先登录mysql命令行
use mysql;
select host,user from user;
查询到user---root 前面写着 localhost,就是不允许远程访问
进行修改
update user set host='%' where user='root';
刷新权限后,可进行远程访问flush privileges;
Navicat链接出现caching_sha2_password问题,密码编码格式不被接受
进入mysql命令行update user set host='%' where user='root';
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '新密码';
退出命令行后,重启服务service mysqld restart
;
able XX.QRTZ_LOCKS doesn`t exist 的大小写区分问题
大小写区分问题,在使用navicat链接时,不会暴露问题,但在代码启动时,会暴露问题
解决方法
8.0新增了data dictionary的概念
8.0与之前5.X版本不同,之前5.X的版本,可以直接修改my.cnf达到目的
在MySQL 5.7之前则允许数据库初始化和启动的值不一致且以启动值为准
所以 mysql需重新初始化
切记,数据一定要提前备份
运行 停止Mysql的运行service mysqld stop
删除/var/lib/mysql目录下所有文件
cd到/var/lib/mysql目录位置,使用rm -rf *
修改my.cnfvi /etc/mycnf
[mysqld]标签下,增加lower_case_table_names=1
这时启动mysqld不会报错
但,由于mysql已被初始化,root密码已被修改,所以需要执行忘记密码操作
忘记root密码/重置root密码
运行grep "A temporary password" /var/log/mysqld.log 也无法获取默认密码
所以
无密码进入mysql / mysql忘记密码重置
在 my.cnf下 增加无密码进入指令vi /etc/my.cnf
[mysqld]段 增加无密码进入命令skip-grant-tables
:wq 保存退出
重启服务service mysqld restart;
mysql -u root -p
提示输入密码时,直接敲回车就可以跳过
选择数据库use mysql;
将密码置空update user set authentication_string = '' where user = 'root';
quit 退出
然后再重新去修改my.cnf文件
去掉skip-grant-tables
:wq 保存退出
重启服务service mysqld restart;
mysql -u root -p 免密码登录,直接敲回车
修改密码
ALTER USER 'root'@'localhost' IDENTIFIED BY 'abc123@xxx';
特别注意,8.0对密码格式进行校验,如不满足安全格式会报错
密码修改完成quit;
重启服务service mysqld restart;
这时又一次发现 navicat 链接时出现
远程访问未开启问题(由于已经初始化了设置)
重复关闭远程访问操作即可