说明:
- 安装与卸载中,用户全部切换成为root,一旦安装,普通用户也能使用的
1.卸载不要的环境
ps ajx | grep mariadb # 先检查云服务器是否配的有mariadb存在
像我这里就是没有的
如果有就先停止掉
systemctl stop mariadb.service # 停⽌mariadb 服务
检查是否安装过mysql
ps ajx | grep mysql
我这里就是安装过的
先切成root用户,然后暂停mysql服务,在查一下mysql就没有了在运行了
systemctl stop mysqld #关闭mysql服务
如果曾经安装过mariadb或mysql,系统里面一定会有各种安装包,一般通过yum的方式获取到的安装包都是 .rpm 为后缀的
rpm -qa | grep mysql #查看mysql安装包
下面把这些安装包卸载,当然你可以一个一个卸载,也可以一次卸载一批
xargs这个指令是将前面内容拼接到这条命令的最后面,因为以前是通过yum安装的,所以还通过yum卸载
rpm -qa | grep mysql | xargs yum -y remove
卸载完,再查一下发现没有了,这才是真的卸载完成
ls /etc/my.cnf #检查当前是否有这个文件,如果卸载了mysql这个是没有的
ls /var/lib/mysql #在系统中mysql默认在这个路径下
这个是上一个mysql残留下来的数据,mysql卸载时默认没把数据删掉,这个也是清理之中的,不影响后面的操作
2.获取mysql官方yum源
注意:最好安装和自己系统⼀致的mysql版本,否则可能会存在软件兼容性问题
cat /etc/redhat-release #查看自己的系统版本
mysql有5.7 和8.0 我们采用最常用的5.7,el代表CentOS,虽然这里没有7.6的但是我们可以选这个,如果有和自己对应的版本7.7、7.8、7.9就选择对应的。
下载到你的本地,然后上传到你的Linux服务器
rz #拉取本地文件到linux服务器
现在确实看到是存在的
3.安装mysql yum源
rpm是安装命令,yum是下载命令
对比前后yum 源
ls /etc/yum.repos.d/ -l
没安装之前
rpm -ivh mysql57-community-release-el7.rpm #安装刚才下载的mysql源
安装之后,发现多了两个mysql
测试看看能不能正常工作,如果有内容说明yum已经生效了
yum list |grep mysql
4.安装mysql服务
上面安装好之后,我们就可以用yum的方式一键安装mysql
yum install -y mysql-community-server #安装mysql
它会将公共部分、库、客户端,服务器都安装。
如果在安装的时候报错了。最常见就是两种问题
1.安装遇到秘钥过期的问题:
Failing package is: mysql-community-client-5.7.39-1.el7.x86_64
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
将上面命令输入命令行,然后在重新安装就可以了
2.安装之后可能发现自己装的是mysql80,根本原因是因为把mysql yum源下载错了
安装mysql成功,输入下面命令可以看到存在一个my.cnf的文件
ls /etc/my.cnf
存在mysql服务端和客户端
mysqld是服务端,一般启动mysql服务端明显看到/sbin/mysqld代表超级用户需要执行它,一般像mysql等这种存储相关的网络服务启动时必须是root权限。我们普通用户用的不是root启动的服务端,而是mysql客户端。
有上面三个东西说明mysql是装好了!
然后我们将mysql服务启动
systemctl start mysqld #启动mysql服务
启动之后我们登录一下
mysql -uroot -p
我们发现登录不进去
下面我们解决如何在现阶段进行常规登录,
5.登录问题
登录方法一(不行就下一个)
获取临时root密码,使用临时密码登录
sudo grep 'temporary password' /var/log/mysqld.log #获取临时root密码
登录之后可以自己修改一下
判断修改密码时候新密码是否符合当前的策略,不满足报错,不让修改,关闭它。安全强度,默认为中,即1,要求必须包含 数字、符号、大小写字母,长度至少为8位
mysql> set global validate_password_policy=0;
密码最小长度
mysql> set global validate_password_length=1;
修改本地登录密码,暂不授权远程登录
mysql> ALTER USER ‘root’@‘localhost’ IDENTIFIED BY ‘qwer@wu.888’;
mysql> FLUSH PRIVILEGES;
如果你安装的最新的mysql,没有所谓的临时密码,root默认没有密码
登录方法二(不行就下一个)
如果你安装的最新的mysql,没有所谓的临时密码,root默认没有密码
试着直接client登陆⼀下
登录方法三(这个肯定行)
vim /etc/my.cnf #打开mysql配置⽂件
在[mysqld]最后一栏配置(不知道是什么,就放在配置文件最后) 加入: skip-grant-tables 选项,并保存退出。就是登录时不给再给我做密码认证了。
然后重启mysql服务,才能配置文件生效!
systemctl stop mysqld #关闭
systemctl start mysqld #启动
systemctl restart mysqld #直接重启
两种办法都可以,然后在登录就不要密码直接按空格进去了
查看自己的数据库
退出
5.配置my.cnf
解决mysql编码不一致问题,这里我们统一使用utf8进行编码,也可以自己该mysql端口号
改mysql端口号
想改就改不改就不用写这句话
datadir 是未来mysql建库建表时数据所在的路径
log-error 是错误日子所在路径
server编码格式
存储引擎
改完重启服务一下才能生效!
6.设置开机启动(可以不设)
因为我们的服务器是布置在云服务器上,云服务器不会关机,因此可以不设
开启开机自启动
systemctl enable mysqld
systemctl daemon-reload