一、清除原来的mysql环境
在前期建议使用root用户来进行操作,使用
su -
来切换成root用户,但是如果老是提示认证失败,那么有可能我们的root密码并没有被设置,
我们可以先设置root的密码
sudo passwd root
然后就可以切换了。
我们使用
ps ajx | prep mysql
来查看
我这里说明是没有的,如果有的话,我们要先关掉,才能卸载。
rpm是linux软件包管理工具,我们可以用
rpm -qa | grep mysql
来查看是否有mysql的安装包。如果有的话,可以先卸载掉。
另外,mariadb是mysql的另一个开源版本。
如果有,也可以删掉
sudo yum remove mariadb
二、配置MySQL yum源
如果我们要下载mysql尽量下载与我们linux版本相近的版本
cat /etc/redhat-release
我这里是7.7
我们先mysql的官方yum源:
https://repo.mysql.com/
我们推荐下载mysql5.7版本的。
进入这个官方的网站后,我们可以查看当前网页源码,然后开始查找,mysql后面跟的57就是5.7版本的,el7就是CentOS7,就下这个了。点一下就开始下载了,这个.rpm其实就是在linux下的安装包,里面包含的是mysql的yum源。
然后将其拷贝到linux上
我们可以先看看我们的本地yum源
ls /etc/yum.repos.d/ -al
接着安装
rpm -ivh mysql57-community-release-el7.rpm
这个时候再查看yum源,就发现多了两个
还可以用以下命令来测试
yum list |grep mysql
三、正式安装MySQL
到这里我们已经可以把安装包给删除了,虽然也可以不删。
现在我们可以用yum来一键安装MySQL了。
用
yum install -y mysql-community-server
安装好,这里不仅仅只是安装MySQL,它还会安装各种组件包括客户端。
另外安装的时候有可能会报错,如果出现了密钥过期的问题,比如
GPG Keys are configured as: file:///etc/pki/rpm-gpg/RPM-GPG-KEY-mysql
我们可以执行
rpm --import https://repo.mysql.com/RPM-GPG-KEY-mysql-2022
来导入一个比较新的密钥。然后再重新执行yum来安装。
接下来验证是否安装成功,我们执行
ls /etc/my.cnf
这就表示成功了。
或者还可以执行
which mysqld
这样也没问题。 这是查看MySQL的服务端。
我们还可以来查看MySQL的客户端
which mysql
对比我们发现,服务器处在sbin目录中,表示超级用户才能启动的。
四、开始登录
第一次安装好,如果我们没有进行配置,可能会登录不上。
方法一:
在老的MySQL中,它可能会给我们生成临时的登录密码
grep 'temporary password' /var/log/mysqld.log
但是新版本,包括我们的5.7都没有了。
所以不重点介绍。
方法二:
如果是最新的MySQL,root默认没有密码,我们可以直接登录,但是我们的版本5.7不行,所以也不多说了
方法三:
这是最通用的方法。先执行
vim /etc/my.cnf
我们直接在[mysqld]的最后加上
skip-grant-tables
就可以了,记得保存。
修改了配置文件以后,我们要想让配置生效,得重启一下MySQL服务。
执行
systemctl start mysqld.service
启动mysqld。
再执行
ps axj | grep mysql
查看,发现已经启动好了。
使用
mysql -u root -p
登录,因为是免密码的,所以我们直接回车登录。
这里可以使用一些简单的命令
show databases;
输入
quit
可以退出。
五、设置配置文件
比如如果我们想让mysql使用utf8的编码方式编码,需要先设置。
依旧是先打开
vim /etc/my.cnf
我们可以设置端口号
port=3306
在[mysqld]后面加上,它默认是3306,如果我们配置了,就按配置的来。
再来配置mysqld的编码格式
character-set-server=utf8
同样加进去。
再设置一下默认的存储引擎
default-storage-engine=innodb
然后保存退出
同理,我们需要重启mysqld才能生效
systemctl restart mysqld
这个指令可以不用先退出mysqld再启动,它可以直接重启。
我们可以用
netstat -nltp
来检查我们的mysqld,可以看看它的端口号。
六、设置开机自启(可选)
其实这个设不设置都无所谓,因为一般云服务器也不关机的。
执行两条指令
systemctl enable mysqld
systemctl daemon-reload