MySQL在Centos7环境安装
1.切换root用户
安装与卸载中,用户全部切换成为root,安装好后,普通用户也能使用
2.卸载不要的环境
要将自己环境中有关mysql的全都删除,避免安装过程中被影响
ps axj | grep mariadb
先检查是否有mariadb
服务启动
这种状态才是没有启动的
如果存在启动的mariadb服务,执行systemctl stop mariadb.service
,再运行ps axj | grep mariadb
3.检查并卸载系统安装包
检查自己的环境中存不存在其他的安装包,避免在安装过程中用错或产生干扰,使最后安装结果的版本不匹配
rpm -qa | grep mariadb
rpm -qa | grep mysql
我的环境中并没有,
假设有其他的包,会显示包的名称,例如:
mysql-community-server-5.7.41-1.el7.x86_64
mysql57-community-release-el7-11.noarch
mysql-community-client-5.7.41-1.el7.x86_64
mysql-community-libs-5.7.41-1.el7.x86_64
此时就需要卸载这些默认安装包,执行(最好一个一个卸载):
sudo yum remove mariadb
然后检查是否有文件/etc/my.cnf
,执行ls /etc/my.cnf
,然后做个备份
4.获取mysql官方yum源
检查自己系统版本:cat /etc/redhat-release
我的是不常用的示范机,装的是阿里云的linux系统
正常应该是显示centos版本,例如:
浏览器输入:Index of /232905
注意:最好安装和自己系统⼀致的mysql版本,否则可能会存在软件兼容性问题
找到后下载到你的本地,然后上传到你的Linux服务器
然后右键选择查看网页源代码,这样会显示出来版本号全称
找mysql57开头的,后缀是elX-X的(大概在一百五十多行)
然后在当前目录新建一个文件夹MySQL
mkdir MySQL
cd MySQL
然后上传刚下载的mysql文件
我这里使用rz
命令,不需要用xftp
,可以先使用yum
下载(sudo yum install lrzsz
)
5.安装mysql yum源
查看本地yum源,安装前后进行对比,命令ls /etc/yum.repos.d/ -al
,(我们的肯定不相同,但是可以看到没有mysql相关的yum源)
安装,使用rmp,命令rpm -Uvh mysql57-community-release-el7-9.noarch_.rpm
(后边跟你自己的包的名称,注意版本号)
再次查看yum源,会发现多了两个mysql相关的
再看看能不能工作,输入命令yum list |grep mysql
(需要等待几秒,我只截取了部分,后边还有很多)
6.安装mysql服务
执行命令yum install -y mysql-community-server
有可能会报错,如下:
这种情况是密匙过期,执行命令rpm --import https://repo.mysql.com/RPM-GPG-KEY-mysql-2022
就能解决
然后再次执行安装命令
成功!
7.查看配置文件和数据存储位置
/etc/my.cnf
此文件是mysql配置文件
/var/lib/mysql
此文件是存储mysql数据的文件
8.启动服务
执行命令systemctl start mysqld.service
查看启动服务,执行命令ps axj |grep mysqld
,可以看到已经启动了
9.登录方法
我们现在还不知道密码,正常情况执行mysql -uroot
是还登录不上的,有几种登录方式,我直接挑一种大部分场景都可以用的:直接跳过密码验证进行登录,需要进行mysql配置
执行命令vim /etc/my.cnf
,然后在最后一行加上skip-grant-tables
然后按esc:wq!
保存配置
配置完以后需要重启mysql服务,执行命令systemctl restart mysqld
启动mysql,执行命令mysql -uroot
登录成功!
10.设置密码
mysql> use mysql;
mysql> update mysql.user set authentication_string = password('新密码') where user='root';
mysql> flush privileges;
mysql> quit;
然后把配置文件改回来。就是把之前在/etc/my.cnf
加的那一行删除了,然后重启mysql服务systemctl restart mysqld
,这次进行登录,但是需要在结尾加上-p
,不加是不需要输入密码的登录方式
成功登录!
11.开机自启动(选择性设置)
执行命令:
systemctl enable mysqld
systemctl daemon-reload
12.my.cnf配置
配置⼀下my.cnf
,主要是数据库客户端和服务器的编码格式
我这里配置了如上三种,配置完毕后重启mysql服务即可systemctl restart mysqld
可选配置:
- port=3306: 这个设置指定了 MySQL 服务器监听的端口号。默认情况下,MySQL 使用端口号 3306 来接收客户端的连接。你可以根据需要修改这个值,但通常情况下不需要更改。
- character-set-server=utf8: 这个设置指定了 MySQL 数据库服务器的默认字符集。在这种情况下,字符集被设置为 UTF-8,这是一种通用的字符编码,支持多种语言的字符集。设置数据库的字符集是非常重要的,特别是当数据库需要存储和处理多语言数据时。
- default-storage-engine=innodb: 这个设置指定了 MySQL 数据库服务器的默认存储引擎。在这种情况下,存储引擎被设置为 InnoDB。InnoDB 是 MySQL 中最常用的存储引擎之一,它支持事务、外键和行级锁等特性,通常被用于处理事务性的数据。MySQL 还支持其他存储引擎,如 MyISAM、Memory 等,每种存储引擎都有其自身的特点和适用场景。
- datadir=/var/lib/mysql: 这个设置指定了 MySQL 数据库服务器的数据目录。在这个配置中,数据目录被设置为 /var/lib/mysql,这是 MySQL 默认的数据存储位置。
- socket=/var/lib/mysql/mysql.sock: 这个设置指定了 MySQL 数据库服务器的套接字文件路径。在这个配置中,套接字文件路径被设置为 /var/lib/mysql/mysql.sock,MySQL 客户端可以通过这个套接字与服务器进行通信。
- symbolic-links=0: 这个设置禁用了 MySQL 数据库服务器中的符号链接,以预防各种安全风险。
- log-error=/var/log/mysqld.log: 这个设置指定了 MySQL 数据库服务器的错误日志文件路径。在这个配置中,错误日志文件被设置为 /var/log/mysqld.log。
- pid-file=/var/run/mysqld/mysqld.pid: 这个设置指定了 MySQL 数据库服务器的进程 ID 文件路径。在这个配置中,进程 ID 文件被设置为 /var/run/mysqld/mysqld.pid。