目录
更多精彩博文详见:
《一文读懂MySQL数据库之 CentOS 7下安装MySQL数据库服务》
一、环境规划
- 服务器IP
master:192.168.110.121
- 操作系统版本
CentOS Linux release 7.7.1908 (Core)
- 关闭防火墙
此处为方便演示,直接关闭防火墙。
生产环境可以根据实际需求开通服务器防火墙策略。
systemctl stop firewalld
systemctl stop iptables
- 查看当前系统是否安装MySQL
[root@master ~]# rpm -qa | grep mysql
若存在则会显示 mysql安装的版本信息,如:mysql-connector-odbc-5.2.5-6.el7.x86_64
卸载已安装的MySQL程序,卸载命令如下:
rpm -e --nodeps mysql-connector-odbc-5.2.5-6.el7.x86_64
并将/var/lib/mysql文件夹下的所有文件都删除干净。
- 查看当前系统是否安装mariadb
如果存在mariadb相关软件,必须卸载,否则可能与MySQL产生冲突。
[root@master ~]# rpm -qa | grep mariadb
[root@master ~]# rpm -e --nodeps mariadb-libs-5.5.64-1.el7.x86_64
- 下载MySQL安装包
glibc是指GNU C Library,代表Linux系统中C语言标准库的特定版本。glibc2.17版本主要面向CentOS 7.x系统,glibc2.28版本主要面向CentOS 8.x系统。本次服务器操作系统版本为CentOS Linux release 7.7,故此处下载的MySQL版本是mysql-8.0.43-linux-glibc2.17-x86_64.tar.xz。
在浏览器输入网址:https://dev.mysql.com/downloads/mysql/,选择合适的版本进行下载,此处选择mysql-8.0.43-linux-glibc2.17-x86_64.tar.xz版本。
- 上传MySQL安装包至服务器
此处将MySQL安装包mysql-8.0.43-linux-glibc2.17-x86_64.tar.xz上传至服务器/usr/local路径下。
二、安装MySQL服务
1、创建MySQL服务相关的用户组及用户
- 创建用户组mysql
[root@master ~]# groupadd -g 306 mysql
[root@master ~]# cat /etc/group | grep mysql --color
- 创建匿名用户mysql
mysql用户用于运行MySQL服务。
[root@master ~]# useradd -u 306 -g 306 -M -s /sbin/nologin mysql
[root@master ~]# cat /etc/passwd | grep mysql --color
2、解压MySQL服务安装包
解压/usr/local路径下的安装包mysql-8.0.43-linux-glibc2.17-x86_64.tar.xz
- 解压MySQL安装包
[root@master ~]# cd /usr/local/
[root@master local]# tar -xvf mysql-8.0.43-linux-glibc2.17-x86_64.tar.xz
- 修改mysql-8.0.43-linux-glibc2.17-x86_64目录及子目录属主为mysql用户
[root@master local]# chown -R mysql:mysql mysql-8.0.43-linux-glibc2.17-x86_64
- 创建mysql软链接
[root@master ~]# cd /usr/local/
[root@master local]# ln -sv mysql-8.0.43-linux-glibc2.17-x86_64 mysql
3、创建MySQL服务配置文件
创建MySQL服务配置文件/etc/my.cnf,并修改文件属主为mysql用户。
- 创建配置文件my.cnf
[root@master ~]# vim /etc/my.cnf
加入如下内容:
[mysql]
# 设置mysql客户端默认字符集
default-character-set=utf8
# 设置socket文件位置
socket=/usr/local/mysql/mysql.sock[mysqld]
# 设置socket文件位置
socket=/usr/local/mysql/mysql.sock
# 设置pid文件位置
pid-file=/usr/local/mysql/mysql.pid
# 设置MySQL服务端口,默认为3306
port=3306
# 关闭mysqlx的33060端口
mysqlx=0
# 设置MySQL服务的安装目录
basedir=/usr/local/mysql
# 设置MySQL服务的数据目录
datadir=/usr/local/mysql/data
# 设置允许的最大连接数
max_connections=2000
# 设置服务端的默认字符集
character-set-server=utf8
# 设置新表默认存储引擎
default-storage-engine=INNODB
max_allowed_packet=16M
- 修改配置文件my.cnf属主为mysql用户
[root@master ~]# chown mysql:mysql /etc/my.cnf
[root@master ~]# ll /etc/my.cnf
4、初始化MySQL服务
[root@master ~]# cd /usr/local/mysql/bin/
[root@master bin]# ./mysqld --initialize --user=mysql --basedir=/usr/local/mysql/ --datadir=/usr/local/mysql/data/
--user=mysql:表示使用mysql用户运行
--basedir:代表MySQL服务的安装目录,此处为/usr/local/mysql/
--datadir:代表MySQL数据库的数据存放目录,此处为/usr/local/mysql/data/
注意:此处一定要记录下root@localhost用户的初始密码为:>0&lql(I(qCE
5、启动MySQL服务
使用mysql用户启动MySQL服务。
- 启动MySQL服务
[root@master ~]# /usr/local/mysql/bin/mysqld --user=mysql
- 查看MySQL服务进程是否存在
[root@master ~]# ps -ef | grep -v grep | grep mysql --color
- 查看MySQL服务端口是否存在
[root@master ~]# netstat -tnlp
由上可见,MySQL服务已经正常启动。
6、重置root@localhost用户的初始密码
初次登录MySQL数据库,需要重置初始密码才能进行其他的数据库操作。此处使用第4步初始化MySQL服务获得的初始密码“>0&lql(I(qCE”登录数据库后进行重置初始密码的操作。
- 重置root@localhost用户的密码为“123456”
[root@master ~]# /usr/local/mysql/bin/mysql -u root -p
Enter password: >0&lql(I(qCEmysql> ALTER USER 'root'@'localhost' IDENTIFIED BY '123456';
mysql> FLUSH PRIVILEGES;
- 使用新密码重新登录
[root@master ~]# /usr/local/mysql/bin/mysql -uroot -p123456
mysql> show databases;
由上可见,root@localhost用户重置密码成功,root@localhost用户可以正常登录。
7、验证MySQL数据库基础功能
- 创建数据库
创建字符集为utf8mb4、校对规则为utf8mb4_unicode_ci的数据库mydb。
mysql> CREATE DATABASE mydb CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
mysql> show databases;
数据库mydb成功创建。
- 创建数据表
在数据库mydb中创建名为student的数据表,其中字段包含Sno(学生学号)、Sname(学生姓名)、Ssex(学生性别)、Sage(学生年龄)、Sdept(学生所在系)。
mysql> USE mydb;
mysql> CREATE TABLE student(Sno char(6) PRIMARY KEY,Sname varchar(24),Ssex varchar(6),Sage int,Sdept varchar(32));
mysql> show tables;
数据表student成功创建。
- 插入数据
插入两行数据到mydb数据库的数据表student。
mysql> USE mydb;
mysql> INSERT INTO student VALUES ('110001','李雷','男',18,'计算机与信息学院');mysql> INSERT INTO student VALUES ('120001','韩梅梅','女',17,'经济管理学院');
数据成功插入。
- 查询数据
查询mydb数据库中student表的数据。
mysql> USE mydb;
mysql> show tables;
mysql> SELECT * FROM student;
查询数据成功。
由上可见,MySQL服务安装后,数据库基础功能正常。
8、关闭MySQL服务
此处使用杀掉MySQL服务进程的方式关闭MySQL服务。MySQL服务的进程ID存放在/usr/local/mysql/mysql.pid文件中,只需读取该文件获取进程ID并kill掉进程即可。
[root@master ~]# cat /usr/local/mysql/mysql.pid | xargs kill -9
[root@master ~]# ps -ef | grep -v grep | grep mysqld --color
[root@master ~]# netstat -tnlp
由上可见,kill掉MySQL服务进程后,MySQL服务进程已经查询不到,且3306端口已经关闭。
三、注册MySQL服务为系统服务
为了方便管理MySQL服务,可以将其注册为系统服务,使用service命令进行服务启动、服务关闭等操作。
1、注册MySQL服务
复制MySQL服务安装目录下的support-files/mysql.server文件到/etc/init.d/路径下重命名为mysqld,然后新增名为mysqld的服务即可。
[root@master ~]# cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld
[root@master ~]# chkconfig --add mysqld
[root@master ~]# chkconfig --list mysqld
由上可见,mysqld服务注册成功。
2、启动MySQL服务
[root@master ~]# service mysqld start
由上可见,MySQL服务进程以及3306端口均正常启动。
3、关闭MySQL服务
[root@master ~]# service mysqld stop
由上可见,MySQL服务进程以及3306端口均正常关闭。
四、systemd方式管理MySQL服务
MySQL服务注册为系统服务后,可以使用systemd方式进行管理,其主要通过systemctl命令工具进行相关操作。
1、查看MySQL服务状态
[root@master ~]# systemctl status mysqld
由上可见,MySQL服务为关闭状态。
2、启动MySQL服务
[root@master ~]# systemctl start mysqld
[root@master ~]# systemctl status mysqld
由上可见,MySQL服务已经启动为运行状态。
3、关闭MySQL服务
[root@master ~]# systemctl stop mysqld
[root@master ~]# systemctl status mysqld
由上可见,MySQL服务为关闭状态。
更多精彩博文详见:






























923

被折叠的 条评论
为什么被折叠?



