一、安装前的准备工作:
1、卸载mysql:
1、检查是否已经安装过mysql,执行命令
[root@localhost /]# rpm -qa | grep mysql
从执行结果,可以看出我们已经安装了mysql-libs-5.1.73-5.el6_6.x86_64,执行删除命令
[root@localhost /]# rpm -e --nodeps mysql-libs-5.1.73-5.el6_6.x86_64
再次执行查询命令,查看是否删除
[root@localhost /]# rpm -qa | grep mysql
2、查询所有MySQL对应的文件夹
[root@localhost /]# whereis mysql
mysql: /usr/bin/mysql /usr/include/mysql
[root@localhost lib]# find / -name mysql
/data/mysql
/data/mysql/mysql
删除相关的目录或文件
[root@localhost /]# rm -rf /usr/bin/mysql /usr/include/mysql /data/mysql /data/mysql/mysql
验证是否删除完毕
[root@localhost /]# whereis mysql
mysql:
[root@localhost /]# find / -name mysql
[root@localhost /]#
3、检查MySQL用户组和用户是否存在:
[root@localhost /]# cat /etc/group | grep mysql
mysql:x:27:
[root@localhost /]# cat /etc/passwd |grep mysql
mysql:x:27:27:MySQL Server:/var/lib/mysql:/bin/false
[root@localhost /]# groupadd mysql
[root@localhost /]# useradd -r -g mysql mysql
对于以前安装过mysql的linux系统,会提示已经存在mysql,上面截图即是已经存在
因此,删除mysql用户组和mysql用户,简单快捷:
userdel mysql #删除mysql用户
groupdel mysql #删除mysql用户组
对于安装过mysql,是难以跨越的阻挡!
2、下载mysql8.0
官网地址:https://downloads.mysql.com/archives/community/
由于centOS是基于Red Hat开发的,所以选择该版本的mysql下载,本人的centOS为64位版本,故下载64位的版本即可。
或者直接用wget命令下载:
wget https://dev.mysql.com/get/Downloads/MySQL-8.0/mysql-8.0.24-1.el7.x86_64.rpm-bundle.tar
3、创建目录:
mkdir /usr/local/mysql
4、将安装包移动到创建好的文件夹中:
mv mysql-8.0.24-1.el7.x86_64.rpm-bundle.tar /usr/local/mysql
5、解压下载好的安装包:
tar -xf mysql-8.0.24-1.el7.x86_64.rpm-bundle.tar
二、正式安装:
rpm -ivh mysql-community-common-8.0.24-1.el7.x86_64.rpm --nodeps --force
rpm -ivh mysql-community-libs-8.0.24-1.el7.x86_64.rpm --nodeps --force
rpm -ivh mysql-community-client-8.0.24-1.el7.x86_64.rpm --nodeps --force
rpm -ivh mysql-community-server-8.0.24-1.el7.x86_64.rpm --nodeps --force
注意:顺序一定不能错!!!顺序一定不能错!!!顺序一定不能错!!!重要的事情说三遍!!!
yum install mysql -y
这步时间会比较久,耐心等待
检查是否已经安装好:
rpm -qa | grep mysql
出现这四个即代表已经安装好了,到这里完成一半了
对数据库进行初始化并设置不区分大小写然后运行数据库服务:
mysqld --initialize --lower-case-table-names=1
chown mysql:mysql /var/lib/mysql -R
systemctl start mysqld.service
systemctl enable mysqld
查看数据库初始密码:
cat /var/log/mysqld.log | grep password
三、登录数据库:
mysql -uroot -p
输入刚才查询的初始密码即可登录进mysql
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '123456';
这里演示,随便设置了123456,自己可以根据自己需要自己设定。
create user 'root'@'%' identified with mysql_native_password by '123456';
grant all privileges on *.* to 'root'@'%' with grant option;
flush privileges;
这个时候安装已经彻底完成,可以正常使用了。
如果想更改端口号的话操作如下:
首先查看mysql默认端口号,一般都是3306,其实没什么看的。这里就列出来吧:
show global variables like 'port'
exit
1、编辑/etc/my.cnf文件 :
vi /etc/my.cnf
2、添加port=6666
3、重启mysql:
systemctl restart mysqld.service
遇到的坑:
mysql数据库的一个重启和停止之类的命令,按照习惯,应该是
service mysql restart
这样的写法,但是centOS7.0以上版本已经废除了service这个命令,所以这样命令就直接没有任何作用了,正确的格式应该是
systemctl restart mysqld.service
即,应当为如下格式:
systemctl + 功能名称 + 服务名
正常输入启动重启之类的不会有任何反馈,但是肯定是已经做了这个动作的,如下:
可以看看我两次的PID是否变化过:
很明显已经进行了重启这项操作了,没有任何提示即为正常状态,如果有其他东西输出到控制台,那肯定是出问题了。
目前碰到的坑暂时就这一个,如果还有其他坑我这会同步更新的。
上面对数据库进行初始化的是第二个坑,本人装好之后按照习惯将数据库更改为不区分大小写模式,都是直接更改 、etc/my.cnf中的文件,然而8.0不行,8.0在my.cnf中加了 lower-case-table-names=1 这句话之后就会启动失败,这个只能在初始化的时候同步加,也就是我在上面的步骤中加的一个写法才行。这里做个记录。
==========================================================================
这边因为项目问题申请了台TX云的一个服务器,发现安装的mysql进行初始化的时候又有个错误,报这个:
mysqld: error while loading shared libraries: libnuma.so.1: cannot open shared object file: No such file or directory
这种情况出现解决方式就比较简单了,缺少了libaio和numactl,这边直接两步安装就完事了:
yum install -y libaio
yum -y install numactl
到这就完成了,重新再进行个初始化就完事了。