Linux 安装MySQLx.x版本

一、卸载MySQL(没有安装过忽略)

rpm -qa | grep mysql
yum remove mysql-*

在/目录下查找包含mysql的文件名,并逐一删除即可

find / -name mysql
rm -rf 搜索出来的文件名(例如 rm -rf /usr/local/mysql)

二、卸载CentOS自带的Maridb数据库

1.搜索有关Mariadb的软件包

rpm -qa | grep mariadb 

在这里插入图片描述
2.强制删除

rpm -e --nodeps mariadb-libs-5.5.68-1.el7.x86_64

3.删除yum中有关Maridb的相关软件包

yum -y remove mari*

三、下载MySQ

百度网盘
在这里插入图片描述

将下载好的MySQL上传到服务器,我存放的路径 /usr/download
在这里插入图片描述

四、开放端口

#开放3306端口
firewall-cmd --zone=public --add-port=3306/tcp --permanen

#重启防火墙
service firewalld restart

# 查看开放端口列表
firewall-cmd --permanent --list-port

在这里插入图片描述

五、安装MySQL

1.解压

cd /usr/download

tar -xvf mysql-8.4.0-linux-glibc2.28-x86_64.tar.xz

mv mysql-8.4.0-linux-glibc2.28-x86_64 /usr/local/mysql 

2.创建MySQL用户组和用户并赋予权限

#创建MySQL用户组和用户
groupadd mysql
useradd -r -g mysql mysql

#赋予权限
chown mysql:mysql -R /usr/local/mysql

3.配置my.cnf

vim /etc/my.cnf

不同的版本,配置内容有所不同

5.7

[mysqld]
user=mysql
basedir=/usr/local/mysql
datadir=/usr/local/mysql/data
port=3306
log-error=/usr/local/mysql/mysql.err
pid-file=/usr/local/mysql/mysql.pid
socket=/usr/local/mysql/mysql.sock
default_authentication_plugin=mysql_native_password
lower_case_table_names=1
group_concat_max_len=102400
[mysql]
default-character-set=utf8mb4
[client]
port=3306
default-character-set=utf8mb4
socket=/usr/local/mysql/mysql.sock

8.0~8.3

[mysqld]
user=mysql
basedir=/usr/local/mysql
datadir=/usr/local/mysql/data
port=3306
log-error=/usr/local/mysql/mysql.err
pid-file=/usr/local/mysql/mysql.pid
socket=/usr/local/mysql/mysql.sock
default_authentication_plugin=caching_sha2_password
lower_case_table_names=1
group_concat_max_len=102400
[mysql]
default-character-set=utf8mb4
[client]
port=3306
default-character-set=utf8mb4
socket=/usr/local/mysql/mysql.sock

8.4

[mysqld]
user=mysql
basedir=/usr/local/mysql
datadir=/usr/local/mysql/data
port=3306
log-error=/usr/local/mysql/mysql.err
pid-file=/usr/local/mysql/mysql.pid
socket=/usr/local/mysql/mysql.sock
default_authentication_plugin=caching_sha2_password
max_connections=200
max_connect_errors=10
character-set-server=utf8mb4
default-storage-engine=INNODB
lower_case_table_names=1
group_concat_max_len=102400
[mysql]
default-character-set=utf8mb4
[client]
port=3306
default-character-set=utf8mb4
socket=/usr/local/mysql/mysql.sock

4.初始化数据库

yum install ncurses-compat-libs

#进入mysql的bin目录
cd /usr/local/mysql/bin/
#初始化
./mysqld --initialize
#查看密码
cat /usr/local/mysql/mysql.err

在这里插入图片描述

5.启动MySQL服务

  • 启动

cd /usr/local/mysql/bin

ln -s /usr/local/mysql/bin/mysql /usr/bin

sudo ./mysqld --defaults-file=/etc/my.cnf &

6.登录MySQL

mysql -uroot -p

输入刚才生成的密码
在这里插入图片描述

7.修改MySQL密码

ALTER USER 'root'@'localhost' IDENTIFIED BY '要设置的密码';
  
FLUSH PRIVILEGES;

在这里插入图片描述

8.修改max_connect_errors最大值

查看默认连接数

show variables like '%max_connect_errors%';

在这里插入图片描述
修改连接数为500,基本上同一IP不可能超过500

set global max_connect_errors = 500; 
flush privileges;

9.远程连接

#访问mysql库
use mysql;      

#使root能再任何host访问
update user set host = '%' where user = 'root';

#刷新
FLUSH PRIVILEGES; 

#退出
exit;

在这里插入图片描述
在这里插入图片描述

六、开机自启

  1. 编写启动脚本

    vi /usr/local/mysql/bin/start.sh
    
    内容如下
    #!/bin/bash
    
    echo "mysql start....."
    /usr/local/mysql/bin/mysqld_safe --defaults-file=/etc/my.cnf &
    
    授权
    chmod +x /usr/local/mysql/bin/start.sh
    
    chown mysql:mysql /usr/local/mysql/bin/start.sh
    
  2. 编写systemctl脚本

    vi /lib/systemd/system/mysql.service
    
    内容如下
    #启动顺序与依赖关系
    [Unit]
    #配置文件的描述信息
    Description=mysql
    #在那个服务后面启动 一般是network.target syslog.target守护进程需要
    After=network.target syslog.target
    
    #启动行为
    [Service]
    #以守护进程的方式启动
    Type=forking
    #哪一个分组的用户来启动
    User=mysql
    Group=mysql
    #服务启动时要执行的命令:执行的命令的路径 [命令的参数]  
    ExecStart=/usr/local/mysql/bin/start.sh
    #只有当服务异常退出时才重启
    Restart=on-failure
    #私有的临时目录
    PrivateTmp=true
    
    #表示如何安装配置文件。
    [Install]
    #表明当系统以多用户方式(默认的运行级别)启动时,这个服务需要被自动运行
    WantedBy=multi-user.target
    
    重新加载systemctl脚本
    systemctl daemon-reload
    
    开启开机自启
    systemctl enable mysql
    
    重启验证
    reboot
    
    #CentOS7
    systemctl status mysql
    
    #CentOS8
    systemctl --no-pager status --full mysql
    
    在这里插入图片描述
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Linrp

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值