Centos7安装MySql(超详细)
这种安装方式是压缩包直接解压安装,需要配置连接,安装依赖包,不如yum安装方便。仅供学习参考 。
一.准备环境
1.缷载maridb
一般centos都会预装maridb,这个可能会与mysql冲突,先卸载它
# 查看是否自带mariadb数据库
[root@node2 ~]# rpm -qa|grep mariadb
mariadb-libs-5.5.68-1.el7.x86_64
# 卸载mariadb
[root@node2 ~]# rpm -e --nodeps mariadb-libs-5.5.68-1.el7.x86_64
# 检查卸载结果,如果输出为空,表示卸载完毕
[root@node2 ~]# rpm -qa|grep mariadb
2.安装wget
wget是一款好用的下载工具,一会下载软件包会用到.
# 查找wget
# 如果有内容,表示还未安装
[root@node2 ~]# rpm -qa|grep wget
# 安装wget
[root@node2 ~]# yum -y install wget
3.安装依赖项
# 查找libaio
[root@node2 ~]# rpm -qa|grep libaio
# 安装libaio
[root@node2 ~]# yum -y install libaio
# 检查numactl
[root@node2 ~]# rpm -qa|grep numactl
# 安装numactl
[root@node2 ~]# yum -y install numactl
二.下载并解压安装包
1.使用wget工具下载mysql安装包
[root@node2 ~]# cd ~ && wget https://cdn.mysql.com/Downloads/MySQL-8.0/mysql-8.0.30-el7-x86_64.tar
2.解压文件
# 把刚才下载的文件解压到 /usr/local目录下
[root@node2 ~]# tar -xvf mysql-8.0.30-el7-x86_64.tar -C /usr/local
mysql-test-8.0.30-el7-x86_64.tar.gz
mysql-8.0.30-el7-x86_64.tar.gz
mysql-router-8.0.30-el7-x86_64.tar.gz
# 可以看到,解压出了三个.gz文件,
# 进入/usr/local,继续解压
[root@node2 ~]# cd /usr/local && tar -xzvf mysql-8.0.30-el7-x86_64.tar.gz
# 把解压出的目录,重命名为 mysql
[root@node2 local]# mv mysql-8.0.30-el7-x86_64 mysql
三.用户权限
创建一个命名为"mysql"的用户来管理数据库相关的文件
# 创建用户组
[root@node2 local]# groupadd mysql
# 创建用户
[root@node2 local]# useradd -g mysql mysql
# 更改mysql目录的所属
[root@node2 local]# chown -R mysql:mysql /usr/local/mysql
四.配置文件
1 创建配置文件
[root@node2 local]# vi /etc/my.cnf
配置文件可以依据你自己的实际情况配置,
如果不熟悉可以复制下面这个
# 客户端配置
[client]
port = 3306
socket = /usr/local/mysql/mysql.sock
default-character-set = utf8mb4
# 服务端配置
[mysqld]
user = mysql
basedir = /usr/local/mysql
datadir = /usr/local/mysql/data
# log-error = /usr/local/mysql/error.log
# pid-file = /usr/local/mysql/mysqld.pid
port = 3306
socket = /usr/local/mysql/mysql.sock
character-set-server = utf8mb4
collation-server = utf8mb4_general_ci
init_connect = 'SET NAMES utf8mb4'
# 表名是否区分大小,默认是0,表区分大小写;1代表不区分大小写,以小写存储
lower_case_table_names = 1
2 把配置文件授权给mysql用户
[root@node2 local]# chown mysql:mysql /etc/my.cnf
五,mysql初始化并启动
1.初始化
[root@node2 local]# /usr/local/mysql/bin/mysqld --initialize
2023-05-25T08:22:09.454308Z 0 [System] [MY-013169] [Server] /usr/local/mysql/bin/mysqld (mysqld 8.0.30) initializing of server in progress as process 22429
2023-05-25T08:22:09.469037Z 1 [System] [MY-013576] [InnoDB] InnoDB initialization has started.
2023-05-25T08:22:10.485336Z 1 [System] [MY-013577] [InnoDB] InnoDB initialization has ended.
2023-05-25T08:22:11.551887Z 6 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: bhH<quyrq3NY
从打印出的日志可以看到,mysql自动生成了一个初始密码 bhH<quyrq3NY ,就在日志最后面.把这个密码记下来,一会登录要用.
2.启动数据库
[root@node2 ~]# /usr/local/mysql/support-files/mysql.server start
Starting MySQL.. SUCCESS!
好了你的数据库服务就已经启动了.不过想操作数据,还需要一个客户端.mysql自带的客户端就在/usr/local/mysql/bin/目录下
3.启动客户端,连接数据库
[root@node2 ~]# /usr/local/mysql/bin/mysql -p
Enter password:
要求你输入密码,把刚才那个初始密码输上,然后敲回车
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 9
Server version: 8.0.30 MySQL Community Server - GPL
Copyright (c) 2000, 2022, 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>
看到上边这个界面,就表示已经连接成功了.是不是想大展拳脚了,不过,还不要着急,第一次使用,mysql会要求你修改下初始密码
4.修改密码
mysql> set password for root@localhost = '123';
Query OK, 0 rows affected (0.00 sec)
刚开始,为了练习方便,可以设置一个好记的.这里设置的是123.
5.允许远程登录
如果你想远程连接mysql,还可以在mysql里设置下
mysql> use mysql;
mysql> update user set user.Host='%' where user.User='root';
mysql> flush privileges;
好了,现在大功告成了. 开始使用它吧.
六.优化启动指令
如果你嫌启动指令有点复杂. 或者想设置开机自启动,可以进一步优化.
1.优化客户端启动指令
实现原理,就是在系/usr/bin 目录下,建立一个客户端启动程序的软连接.类似于在window系统下,配置环境变量
# 软连接
[root@node2 local]# ln -s /usr/local/mysql/bin/mysql /usr/bin
以后可以直接用mysql启动客户端了
mysql -uroot -p
2.优化服务器端启动指令
同理,把服务端的启动程序,软连接到系统启动目录下:
[root@node2 ~]# ln -s /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld
以后可以用下列指令操控mysql服务
#开启服务
service mysql start
#关闭服务
service mysql stop
#重启服务
service mysql restart
#查看服务状态
service mysql status
3.配置开机自启动
如果需要服务器重启时,mysql能够自动运行,可以把mysql添加到自启列表
# 添加到自启动列表
[root@node2 local]# chkconfig --add mysqld
# 可以重启机器,验证下
[root@node2 local]# reboot
# 查看mysql是否运行
[root@node2 local]# ps -e|grep mysql
1176 ? 00:00:00 mysqld_safe
1635 ? 00:00:00 mysqld
centos7以上的系统, 添加到自启列表的服务,还可以用systemctl 命令来管理
# 开启服务
[root@node1 ~]# systemctl start mysql
# 关闭服务
[root@node1 ~]# systemctl stop mysql
# 重启服务
[root@node1 ~]# systemctl restart mysql
# 查看服务状态
[root@node1 ~]# systemctl status mysql