概述
以往的情况,在Centos7上安装MySQL数据库,我们选择的方式大概有这样几种
- 使用包管理器安装
- 下载rpm安装包进行安装
- 编译源码进行安装
本文要介绍安装方式,是通过官方已经编译好的包进行安装,只需要通过几个步骤就可以使用。使用本文中介绍的安装方式,需要操作人员具有一定的linux操作基础,零基础小白慎用!
安装步骤
下载绿色免安装的包
wget https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.32-linux-glibc2.12-x86_64.tar.gz
解压
tar zxvf mysql-5.7.32-linux-glibc2.12-x86_64.tar.gz
移动文件
解压完成后,我们会在当前目录下看到有个mysql-5.7.32-linux-glibc2.12-x86_64
文件夹,此文件夹中的内容,就是我们可以运行使用MySQL
程序,根据我们的使用习惯,应用程序要移动到/usr/local
目录下进行使用
mv mysql-5.7.32-linux-glibc2.12-x86_64 /usr/local/mysql
上述命令表示,我们将解压好的文件夹移动到了/usr/local
下,并且将其更名为mysql
修改环境变量
修改/etc/profile
文件,并且在文件的最后添加以下内容
export PATH=$PATH:/usr/local/mysql/bin
保存后,执行source /etc/profile
使其生效
卸载mariadb依赖包
在Centos7中,系统会默认自带了mariadb
的依赖包,这个包与mysql是有冲突的,因此我们在使用之前要将其卸载
- 查询
mariadb
包名
rpm -qa|grep mariadb
执行该命令后,我们就能得到系统默认安装的mariadb
包名,我当前得到的包名是mariadb-libs-5.5.68-1.el7.x86_64
,我们使用包管理器将其卸载
yum remove mariadb-libs-5.5.68-1.el7.x86_64 -y
创建服务器用户
useradd -s /sbin/nologin mysql
该命令是创建一个mysql
用户,此用户用于启动mysql服务
创建数据目录
mkdir -p /data/mysql/data
授权
这里要分别对mysql
用户进行应用目录授权和数据目录授权
chown -R mysql.mysql /usr/local/mysql
chown -R mysql.mysql /data
初始化
我们要mysql进行初始化,使其生成启动服务必要的数据文件这里的初始化方式有两种,两种的区别就在于初始化完成后,客户端登录时是否需要密码
- 无密码初始化
mysqld --initialize-insecure --user=mysql --basedir=/usr/local/mysql --datadir=/data/mysql/data
- 有密码初始化
mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/data/mysql/data
使用有密码的方式初始化时,在初始化命令结束后,命令中会显示出初始化系统生成密码,在服务启动后,可以使用此密码进行登录
创建配置文件
要启动mysql服务,我们要设置mysql的启动参数,如果使用包管理器或者rpm包的方式进行安装时,会自动在/etc
目录下生成一个my.cnf
的文件,我们为了将来方便扩展,将这个配置文件放到/data/mysql
目录下
[mysqld]
user=mysql
basedir=/usr/local/mysql
datadir=/data/mysql/data
socket=/data/mysql/mysql.sock
server_id=6
port=3306
character-set-server=utf8
lower_case_table_names=1
参数 | 说明 |
user | 启动mysql服务的服务器系统用户 |
basedir | mysql的应用程序目录 |
datadir | 数据目录 |
socket | 生成一个sock文件,用于客户端登录使用 |
server_id | 该参数在搭建主从的时候会用到,在这里没有任何作用 |
port | mysql服务的端口 |
character-set-server | 设置mysql服务的默认字符集 |
lower_case_table_names | 表名忽略大小写 |
创建服务文件/usr/lib/systemd/system/mysqld.service
[Unit]
Description=MySQL Server
Documentation=man:mysqld
Documentation=http://dev.mysql.com/doc/refman/en/using-systemd.html
After=network.target
[Install]
WantedBy=multi-user.target
[Service]
User=mysql
Group=mysql
ExecStart=/usr/local/mysql/bin/mysqld --defaults-file=/etc/my.cnf
LimitNOFILE=5000
启动服务
systemctl start mysqld.service
客户端连接
mysql -S /data/mysql/mysql.sock