Centos7安装MySql(超详细)

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
  • 1
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值