一、安装准备
MySQL下载地址:
https://downloads.mysql.com/archives/community/
是否安装过mysql
检查是否已经安装过mysql,执行命令:
rpm -qa | grep mysql
如果有的,可以进行删除,删除命令:
rpm -e --nodeps 上面查出来的版本
安装目录:
进入如下目录:
cd /usr/local/
将下载下来的mysql-8.0.21-linux-glibc2.12-x86_64.tar.xz拷贝到这个路径下
因为压缩了两次,第一次是tar,第二次是xz,所以先解压xz的,执行如下命令:
xz -d mysql-8.0.21-linux-glibc2.12-x86_64.tar.xz
稍等一会儿 ,会在当前目录下出现如下文件:
mysql-8.0.21-linux-glibc2.12-x86_64.tar
然后解压当前文件,执行命令:
tar -zxvf mysql-8.0.21-linux-glibc2.12-x86_64.tar
然后,/usr/local/路径下会出现mysql-8.0.21-linux-glibc2.12-x86_64这个文件夹
执行如下命令:
mv mysql-8.0.21-linux-glibc2.12-x86_64 mysql
将文件名成变更为mysql,结果如下:
在/usr/local/mysql目录下创建data目录,
#此处用来存放mysql的数据文件,如果不像放在这个文件夹下,可以在制定的路径下创建,之后在配置文件中替换就行
mkdir /usr/local/mysql/data
mysql用户组创建:
检查mysql用户组和用户是否存在,命令如下:
cat /etc/group | grep mysql
cat /etc/passwd |grep mysql
如果不存在mysql用户组,执行如下命令:
#添加组
groupadd mysql
#添加用户并加入mysql组
useradd -r -g mysql mysql
更改mysql目录下所有的目录及文件夹所属的用户组和用户,以及权限
chown -R mysql:mysql /usr/local/mysql
chmod -R 755 /usr/local/mysql
编译安装并初始化mysql,务必记住初始化输出日志末尾的密码(数据库管理员临时密码)
cd /usr/local/mysql/bin
#datadir是上面创建的data文件夹,存放的是mysql的数据文件, basedir是mysql的安装目录
./mysqld --initialize --user=mysql --datadir=/usr/local/mysql/data --basedir=/usr/local/mysql
执行成功后,一定要看末尾的临时密码,会有如下提示:
A temporary password is generated for root@localhost: 临时密码
编辑配置文件my.cnf,添加配置如下:
vi /etc/my.cnf
[mysqld]
datadir=/usr/local/mysql/data
port=3306
symbolic-links=0
max_connections=600
#是否将每个表的数据单独存储,1表示单独存储;0表示关闭独立表空间,可以通过查看数据目录,查看文件结构的区别
innodb_file_per_table=1
#是否区分大小写,1表示存储时表名为小写,操作时不区分大小写;0表示区分大小写;不能动态设置,修改后,必须重启才能生效
lower_case_table_names=1
#设置数据库默认字符集,如果不设置默认为latin1
character_set_server=utf8
测试启动mysql服务器:
/usr/local/mysql/support-files/mysql.server start
出现start success则表示启动成功
添加软连接,并重启mysql服务:
ln -s /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql
ln -s /usr/local/mysql/bin/mysql /usr/bin/mysql
service mysql restart
登录mysql,修改密码
mysql -u root -p初始化时临时生成的密码
登录成功后,执行如下命令:
#如果不加mysql_native_password的话,通过navicat客户端链接的时候报Navicat ,SQLyog连接MySQL8 异常2059-Authentication plugin 'caching_sha2_password' cannot be loaded
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '在这里输入你的密码';
开放远程连接,执行命令:
grant all privileges on *.* to 'root'@'%' identified by 'root';
flush privileges;