centos下实战安装mysql5.7(通用版的glibc预编译过的二安装包)

本文详述了在CentOS 7.9环境中安装MySQL 5.7的过程,包括卸载原有数据库、检查系统依赖、创建专用用户、配置my.cnf文件,以及设置root密码和权限。最后演示了启动、修改密码和配置客户端访问的步骤。
摘要由CSDN通过智能技术生成

前言

环境:Centos7.9 mysql-5.7.33-linux-glibc2.12-x86_64.tar.gz

前期准备

[root@mysql ~]# rpm -qa|grep mysql									#先查看下系统有没有安装有mysql包,有的话就卸载
[root@mysql ~]# rpm -qa| grep mariadb								#查看有没有其他的数据库,如mariadb	,有的话需要卸载
[root@mysql ~]# rpm -e mariadb-libs-5.5.68-1.el7.x86_64 --nodeps	#卸载mariadb

[root@mysql  ~]# rpm -qa| grep glibc								#先查询glic版本是否等于或高于你下载的mysql安装包
glibc-2.17-324.el7_9.x86_64
[root@mysql ~]# rpm -qa|grep libaio									#查看有没有安装libaio,没有就yum安装
libaio-0.3.109-13.el7.x86_64
[root@mysql  ~]# rpm -qa|grep ncurses-compat-libs					#查看有没有安装ncurses,没有就yum安装
[root@mysql  ~]# yum install  ncurses*								#安装ncurses相关的依赖包

[root@mysql ~]# mkdir /mysql_software/								#创建一个mysql_software目录,用于存放解压后的mysql包

开始安装mysql5.7

[root@mysql ~]# useradd -M -s /bin/false mysql						#创建一个没有家目录也不能登录的专门用于运行MySQL的用户
[root@mysql ~]# mkdir /data/										#创建一个data目录,用于存放mysql的数据
[root@mysql ~]# chown -R mysql:mysql /data/							#授权给mysql管理data目录
[root@mysql ~]# tar -zxvf mysql-5.7.33-linux-glibc2.12-x86_64.tar.gz -C /mysql_software/	#解压mysql的tar包到指定目录
[root@mysql ~]# cd /mysql_software										#进入到解压的目录
[root@mysql mysql_software]# cd mysql-5.7.33-linux-glibc2.12-x86_64/	#进入到解压的目录
[root@mysql mysql-5.7.33-linux-glibc2.12-x86_64]# ll					#查看解压出来的mysql文件
total 264
drwxr-xr-x.  2 root root    4096 Jul  4 20:48 bin
drwxr-xr-x.  2 root root      55 Jul  4 20:48 docs
drwxr-xr-x.  3 root root    4096 Jul  4 20:47 include
drwxr-xr-x.  5 root root     230 Jul  4 20:48 lib
-rw-r--r--.  1 7161 31415 250129 Dec 10  2020 LICENSE
drwxr-xr-x.  4 root root      30 Jul  4 20:47 man
-rw-r--r--.  1 7161 31415    566 Dec 10  2020 README
drwxr-xr-x. 28 root root    4096 Jul  4 20:48 share
drwxr-xr-x.  2 root root      90 Jul  4 20:48 support-files

#创建一个软连接,创建软件链接的好处在于,对外使用/usr/local/mysql软链接,当mysql软件版本改变的时候,我们只需要重新定义软链接到新的
# mysql版本即可,这样就能保证软链接访问路径不会改变
[root@mysql mysql_software]# ln -s /mysql_software/mysql-5.7.33-linux-glibc2.12-x86_64/ /usr/local/mysql
[root@mysql mysql_software]# chown -R mysql:mysql mysql-5.7.33-linux-glibc2.12-x86_64/		#授权
[root@mysql local]# cd /usr/local/
[root@mysql local]# chown -R mysql:mysql mysql/												#授权
[root@mysql local]# cd mysql/bin
[root@mysql bin]#./mysqld --initialize --user=mysql --datadir=/data		#初始化并指定数据目录,会生成root密码,记住这个密码
[root@mysql bin]#./mysql_ssl_rsa_setup --datadir=/data/ --uid=mysql		#设置mysql加密通讯
[root@mysql bin]# ./mysqld_safe --user=mysql &
[root@mysql support-files]# cp mysql.server /etc/init.d/mysqld					#复制mysql的启动文件到/etc/init.d/目录
[root@mysql ~]# echo 'export PATH=$PATH:/usr/local/mysql/bin' >> /etc/profile	#定义全局变量

注意(必读)

由于我们使用的二进制包,即通用版的glibc预编译过的安装包,从官方得知mysql由于在5.7开始,二进制包不再包含示例文件my-default.cnf,所以如果你想使用/etc/my.cnf文件的话,你就需要自己来编写这个文件;但即使没有my.cnf文件,MySQL也能正常运行,这是因为很多默认配置已经编译在二进制文件中了,我们也可以可以通过 mysql --verbose --help 可以看到相应的默认配置。
其实,我们仍然可以通过配置文件my.cnf对mysql进行配置,my.cnf文件其实就是把在命令行上启动MySQL时后面的参数使用my.cnf文件配置好,那么下次启动时就不再需要在命令上加上参数,这个my.cnf文件可以是自定义位置,也可以使用如下默认的位置,只要放在默认位置,MySQL自动识别,识别顺序如下:

文件名目的
/etc/my.cnf全局选项
/etc/mysql/my.cnf全局选项
SYSCONFDIR/my.cnf全局选项
$MYSQL_HOME/my.cnf服务器特定选项(仅限服务器)
defaults-extra-file指定的文件 --defaults-extra-file,如果有的话
~/.my.cnf用户特定选项
~/.mylogin.cnf用户特定的登录路径选项(仅限客户端)

创建my.cnf配置文件

[root@mysql ~]# vim /etc/my.cnf 		#自己创建my.cnf文件,并添加以下内容,内容根据自己的实际情况添加
[client]
port = 3306
socket = /data/tmp/mysql.sock
default-character-set = utf8			#客户端字符集
[mysqld]
server_id = 1
port = 3306								#端口
datadir = /data							#MySQL的数据目录
basedir = /usr/local/mysql				#MySQL的安装目录
socket = /data/tmp/mysql.sock			#socket文件
pid-file = /data/pid/mysql.pid			#pid文件
log_error = /data/logs/error.log		#数据库错误日志文件
character-set-server = utf8				#MySQL字符集
lower_case_table_names = 1				#是否对sql语句大小写敏感,1表示不敏感
max_connections = 2048					#最大连接数
max_connect_errors = 1000				#最大错误连接数

[root@mysql ~]# 
[root@mysql mysql]# mkdir /data/pid					#创建目录
[root@mysql mysql]# mkdir /data/tmp					#创建目录
[root@mysql mysql]# mkdir /data/logs				#创建目录
[root@mysql mysql]# touch /data/pid/mysql.pid		#创建pid文件
[root@mysql mysql]# touch /data/tmp/mysql.sock		#创建mysql.sock文件
[root@mysql mysql]# touch /data/logs/error.log		#创建error.log文件

[root@mysql mysql]#chown -R mysql:mysql /data 		#重新授权,因为刚才创建了目录和文件,确保创建的3个文件mysql用户具有写入权限

启动MySQL

[root@mysql logs]# /etc/init.d/mysqld start				#启动MySQL
Starting MySQL. SUCCESS! 
[root@mysql logs]# lsof -i:3306							#端口正常
COMMAND   PID  USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
mysqld  18506 mysql   20u  IPv6  49588      0t0  TCP *:mysql (LISTEN)

修改root密码、更改root能登陆的客户机

[root@mysql ~]# mysql -uroot -p									#-u指定用户,默认就是root用户,中间不用加空格
Enter password: 												#输入初始化时生成的随机密码
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 2
Server version: 5.7.33

Copyright (c) 2000, 2021, Oracle and/or its affiliates.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'manager001';					#修改root密码
mysql> flush privileges;															#重新刷新权限,让配置重新生效
mysql>use mysql;																	#切换到mysql数据库
mysql> select user,host from user;													#查看用户表
+---------------+-----------+
| user          | host      |
+---------------+-----------+
| mysql.session | localhost |
| mysql.sys     | localhost |
| root          | localhost |														#发现root用户只允许本机登录
+---------------+-----------+
3 rows in set (0.00 sec)

mysql> update  user set host='%' where user='root' and host='localhost';		    #修改root能从任何客户端登陆
Query OK, 1 row affected (0.00 sec)
Rows matched: 1  Changed: 1  Warnings: 0

mysql> flush privileges;															#重新刷新权限
mysql> exit;																		#退出


[root@mysql ~]# mysqladmin -uroot -p shutdown										#关闭数据库
Enter password: 
[root@mysql ~]# 
[root@mysql ~]# lsof -i:3306														#MySQL以关闭,端口已不存在
[root@mysql ~]# 		

结尾

是不是很多,哈哈哈,多看几遍就会了

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值