大家好,我是程序员阿江。
这篇文章主要记录,在Linux环境下,数据库MySQL8.0的卸载、下载、安装和配置。
演示环境: centos7.9+mysql8.0.35
MySQL卸载
如果你的服务器之前安装过mysql,最好先卸载,以免后续安装出错。
使用rpm -qa | grep -i mysql
查看服务器上是否安装过MySQL:
如果出现上面的文件,请使用yum remove mysql-xxx(上面查到的rpm包)
依次删除,直到rpm -qa | grep -i mysql
查询为空。
至此,MySQL软件已经卸载,但是还需要删除MySQL相关的一些文件。
find / -name mysql
查找mysql相关的文件:
然后使用rm -rf
删除上面的文件
最后使用rm -rf /etc/my.cnf
删除MySQL的配置文件。
下载MySQL8.0
推荐从MySQL官网进行下载
看下面这张截图,选择合适自己的版本进行下载,我选择的是Linux7(x86,64bit)离线版本
下载结束后,会得到一个mysql-8.0.35-1.el7.x86_64.rpm-bundle.tar
压缩包
查看Linux的版本的命令:
cat /etc/redhat-release
安装MySQL8.0
下载好的压缩包需要上传到Linux服务器,由于文件较大,上传较慢,所以我推荐先在本地解压,然后将下面的几个文件上传到服务器即可:
注意:MySQL8.0较早的版本可能没有上图中的第5个文件,就不用上传啦,后续安装也忽略这个文件
如下图,我已经将这6个文件放到我的/opt/mysql80目录下了:
在正式安装之前,我们还需要做下面2个准备工作:
-
修改/tmp临时目录权限
执行chmod -R 777 /tmp
命令即可。 -
检查依赖
rpm -qa | grep libaio
rpm -qa | grep net-tools
如果不存在,需要进行rpm安装。
接下来开始正式安装MySQL:
按照上面截图中数字的顺序依次执行rpm -ivh xxx
命令进行安装:
rpm -ivh mysql-community-common-8.0.35-1.el7.x86_64.rpm
rpm -ivh mysql-community-client-plugins-8.0.35-1.el7.x86_64.rpm
rpm -ivh mysql-community-libs-8.0.35-1.el7.x86_64.rpm
rpm -ivh mysql-community-client-8.0.35-1.el7.x86_64.rpm
rpm -ivh mysql-community-icu-data-files-8.0.35-1.el7.x86_64.rpm
rpm -ivh mysql-community-server-8.0.35-1.el7.x86_64.rpm
第三步如果出现mariadb-libs错误,执行yum remove mysql-libs
最后一步如果出现libnuma.so.1错误,执行yum -y install numactl。
至此,MySQL8.0已经安装成功了,可以使用mysql --version
或者mysqladmin --version
进行查看。
启动MySQL
-
初始化MySQL服务
mysqld --initialize --user=mysql
执行完初始化命令后,会为root用户生成一个临时密码并保存在日志中,可以使用cat /var/log/mysqld.log
查看密码,后面登录需要使用该密码
-
启动MySQL服务
systemctl start mysqld
执行完上面命令后可以使用systemctl status mysqld
查看是否启动成功 -
连接MySQL
mysql -uroot -p输入密码
或者mysql -uroot -p
回车再输入密码
小区别:回车后输入的密码是加密显示的,否则是明文显示的
密码从上面的日志里复制,注意不要多复制前面的空格,粘贴后密码可能不在控制台显示,直接回车即可。
至此,登录成功。
修改密码
初次登录MySQL是不能操作数据库的,需要先执行下面的SQL修改密码
alter user 'root'@'localhost' identified by 'new_password';
开机自启动
每次开机都需要重启MySQL服务,还是比较麻烦的,我们可以设置MySQL服务开机自启动。
-
查看MySQL服务是否开机自启动
systemctl list-unit-files | grep mysqld.service
-
禁用自启动
systemctl disable mysqld.service
-
启用自启动
systemctl enable mysqld.service
enable表示开启,disable表示禁用
开启远程连接
root用户默认只能从本地连接,如果需要使用远程连接MySQL,需要做下面的设置。
首先要保证服务器的3306端口已开放,或者直接关闭防火墙,云服务器的话则在控制台设置安全组放开3306端口即可。
假设使用的是虚拟机,下面我们看看如何关闭防火墙。
-
查看防火墙状态:
systemctl status firewalld
-
关闭防火墙
systemctl stop firewalld
-
禁用防火墙开机自启动
systemctl disable firewalld
然后登录MySQL,执行下面的SQL语句
//查看所有数据库
show databases;
//切换到mysql数据库
use mysql;
//查看root用户权限
select host,user from user;
//二选一 将root用户设置为任意远程连接
update user set host='%' where user='root';
//二选一 这个看着安全点
update user set host='192.168.1.%' where user='root';
别忘了刷新下,使用flush privileges;
MySQL8.0需要执行(MySQL5.7不用):
alter user 'root'@'%' identified with mysql_native_password by 'new_password';
完结,撒花!~
本文由 mdnice 多平台发布