学习基于记录,而不止于记录。
希望自己能坚持下去~
0.写在前面
网上提供不少在线安装MySQL的教程,但是有时候会出现无网络的清空下,个人还是偏爱离线安装的方式。'
当然即使是离线安装必要的Linux环境下的工具必须拥有,如下指令必须已经执行安装,如果没有安装的话离线情况下也得使用离线包安装:
# 传输文件时需要
yum install -y lrzsz
# MySQL初始化时需要
yum install -y libaio
contos版本:
# cat /etc/redhat-release
CentOS Linux release 7.7.1908 (Core)
MySQL版本:8.0.15
1.下载离线安装包
下载离线安装tar包
2.创建文件夹、上传并解压缩
#进入指定目录创建文件夹
cd /usr/local
mkdir mysql
#上传之前下载的tar包
#这里我是直接通过xftp上传的,也可以借助rz指令上传
rz
#解压缩
tar -xvf mysql-8.0.15-1.el7.x86_64.rpm-bundle.tar
3.卸载mariadb
#查看mariadb安装包
rpm -qa | grep mariadb
#卸载mariadb
rpm -e mariadb-libs-5.5.60-1.el7_5.x86_64 --nodeps
#再次执行查看指令,会发现安装包已经没有了
4.安装
一定要在之前创建的目录下执行
rpm -ivh mysql-community-common-8.0.15-1.el7.x86_64.rpm --nodeps --force
rpm -ivh mysql-community-libs-8.0.15-1.el7.x86_64.rpm --nodeps --force
rpm -ivh mysql-community-client-8.0.15-1.el7.x86_64.rpm --nodeps --force
rpm -ivh mysql-community-server-8.0.15-1.el7.x86_64.rpm --nodeps --force
5.大小写设置(可以省略)
当前版本MySQL安装默认是大小写敏感的,如下
mysql> show variables like '%case%';
+------------------------+-------+
| Variable_name | Value |
+------------------------+-------+
| lower_case_file_system | OFF |
| lower_case_table_names | 0 |
+------------------------+-------+
2 rows in set (0.00 sec)
我在开发中是不怎么喜欢这一点的,当然不同项目组可能要求不一样,所以这一项修改是非必要的。
vim /etc/mysql/my.cnf
#加上这么一行,修改为1
[mysqld]
lower_case_table_names=1
提示:
如果在该处不进行修改,那么如果后期想要修改,比较麻烦,你必须删除之前所有的MySQL数据然后重新初始化。操作如下:
1)
cd /var/lib/
rm -rf mysql
2)然后修改/etc/mysql/my.cnf
文件和上面操作一样
3)重新初始化数据,和下面第5步一样。
5.初始化
mysqld --initialize
chown mysql:mysql /var/lib/mysql -R
systemctl start mysqld
6.获取默认密码
cat /var/log/mysqld.log | grep password
2020-06-09T06:17:01.891036Z 5 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: kb%eKryl!9j1
这里默认密码就是:kb%eKryl!9j1
7.修改密码
使用默认密码登录
mysql -uroot -p
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'root';
create user 'root'@'%' identified with mysql_native_password by 'wish2020';
grant all privileges on *.* to 'root'@'%' with grant option;
flush privileges;
quit;
8.一些问题
MySQL 连接出现 Authentication plugin 'caching_sha2_password' cannot be loaded
MySQL远程连接被拒绝
9.总结
我感觉MySQL8比5.7折腾多了,尤其是大小写问题,竟然一旦初始化再想修改就必须清理所有MySQL数据再重新初始化才可以修改。还有安装完毕后经常出现的问题也同样记录在此,希望以后别再跌进同一个坑了。