CentOS7安装部署MySQL80

文章目录

  • CentOS7安装部署MySQL80
  • 一、前言
  • 二、正文
    • 1.安装部署
      • 1)卸载 mariadb
      • 2)MySQL安装
      • 3)启动
      • 4)首次登录
    • 2.允许所有主机连接
    • 3.修改密码
    • 4.my.cnf配置文件
    • 5.开启binlog
    • 6.密码校验策略
    • 7.密码过期
    • 8.表名大小写敏感
    • 9.最大连接数
    • 10.导入数据
    • 11.查询版本信息
    • 12.常用命令

CentOS7安装部署MySQL80

一、前言

  • Linux 发行版:**CentOS-7-x86_64-DVD-1804.iso **
  • MySQL 版本:mysql80-community-release-el7-9

MySQL Yum Repository:https://dev.mysql.com/downloads/repo/yum/

[ContOS] MySQL安装部署:https://blog.csdn.net/u011424614/article/details/94555816

[Windows] MySQL安装部署:https://blog.csdn.net/u011424614/article/details/102466819

CentOS基础操作命令:https://blog.csdn.net/u011424614/article/details/94555916

二、正文

1.安装部署

1)卸载 mariadb

  • 查询 mariadb 版本
rpm -qa | grep mariadb
  • 卸载
rpm -e --nodeps mariadb-libs-5.5.56-2.el7.x86_64

2)MySQL安装

  • 创建下载目录
mkdir /opt/mysql
cd /opt/mysql
  • 下载 RPM 软件包
wget https://repo.mysql.com//mysql80-community-release-el7-9.noarch.rpm
  • 添加 MySQL 社区版本的软件仓库源
yum -y localinstall mysql80-community-release-el7-9.noarch.rpm
  • 安装软件包
rpm -ivh mysql80-community-release-el7-9.noarch.rpm
  • 安装 mysql-server
yum install mysql-server --nogpgcheck
  • 安装后的目录
  1. 安装目录:/usr/local/mysql
  2. 数据库文件目录,例如表结构和数据:/var/lib/mysql
  3. 日志文件目录:/var/log/mysql
  4. 配置文件目录:/etc/mysql

3)启动

  • 启动服务,并设置开机自启动
#-- 启动服务
systemctl start mysqld

#--开机自启动
systemctl enable mysqld
systemctl daemon-reload

#-- 服务状态
systemctl status mysqld
  • 测试端口
netstat -anp|grep 3306

4)首次登录

  • 查询默认密码
grep "A temporary password" /var/log/mysqld.log
  • 输出密码:sKylT1n07s&h
2023-08-14T09:06:10.533287Z 6 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: sKylT1n07s&h
  • MySQL 客户端登录
mysql -uroot -p
  • 修改默认密码
ALTER USER 'root'@'localhost' IDENTIFIED BY 'Root@123456';

2.允许所有主机连接

  • (MySQL 客户端中执行)
use mysql;

#-- 查询 Host 值
SELECT User, Host FROM mysql.user WHERE User = 'root';

#-- Host 修改为 %
update user set host='%' where user='root' and host='localhost';

#-- 刷新权限
flush privileges;

3.修改密码

  • (MySQL 客户端中执行)
ALTER USER 'root'@'%' IDENTIFIED BY 'Root#@123456';

4.my.cnf配置文件

  • 查询 MySQL 存放目录
mysql --help | grep cnf
  • 编辑或新增 my.cnf 配置文件
vim /etc/my.cnf
  • 配置文件内容
[mysqld]
port=3306

datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock

log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid

5.开启binlog

  • 编辑 my.cnf 配置文件
vim /etc/my.cnf
  • [mysqld] 段中写入
[mysqld]

log-bin=mysql-bin
server-id=1
  • 重启服务
systemctl restart mysqld
  • 查询 binlog 文件(MySQL 客户端中执行)
show variables like '%log_bin%';
show master logs;

6.密码校验策略

  • 查询密码校验策略(MySQL 客户端中执行)
SHOW VARIABLES LIKE 'validate_password.%';
  • 输出内容
+-------------------------------------------------+--------+
| Variable_name                                   | Value  |
+-------------------------------------------------+--------+
| validate_password.changed_characters_percentage | 0      |
| validate_password.check_user_name               | ON     |
| validate_password.dictionary_file               |        |
| validate_password.length                        | 8      |
| validate_password.mixed_case_count              | 1      |
| validate_password.number_count                  | 1      |
| validate_password.policy                        | MEDIUM |
| validate_password.special_char_count            | 1      |
+-------------------------------------------------+--------+
8 rows in set (0.01 sec)
  • 修改策略(MySQL 客户端中执行)
#-- validate_password.length 是密码的最小长度,默认是8,改成6
set global validate_password.length=6;

#-- validate_password.policy 验证密码的复杂程度
set global validate_password.policy=0;

#-- validate_password.check_user_name 用户名检查,用户名和密码不能相同,改为关掉
set global validate_password.check_user_name=off;

7.密码过期

  • 查询用户的密码过期情况(MySQL 客户端中执行)
select host,user,password_expired from user;
  • 输出内容:password_expired:Y=密码过期;N=密码未过期
+-----------------------+------+------------------+
| host                  | user | password_expired |
+-----------------------+------+------------------+
| localhost             | root | N                |
| localhost.localdomain | root | Y                |
| 127.0.0.1             | root | Y                |
| ::1                   | root | Y                |
+-----------------------+------+------------------+
4 rows in set (0.00 sec)
  • 修改过期标识(MySQL 客户端中执行)
use mysql;

#-- 修改过期标识
update user set password_expired='N' where user='root';

#-- 刷新权限
flush privileges;

8.表名大小写敏感

  • MySQL 默认大小写规则
Linux:
1. 数据库和表名严格区分大小写;
2. 表的别名严格区分大小写;
3. 列名和列的别名忽略大小写;
4. 变量名严格区分大小写

Windows:
1. 不区分大小写

Mac OS:
1. 不区分大小写
  • 查询大小写规则(MySQL 客户端中执行)
show variables like 'lower%';
  • 输出内容
  • lower_case_file_system:ON=大小写不敏感;OFF=大小写敏感(默认随系统变化)
+------------------------+-------+
| Variable_name          | Value |
+------------------------+-------+
| lower_case_file_system | OFF   |
| lower_case_table_names | 0     |
+------------------------+-------+
2 rows in set (0.01 sec)
  • 设置为大小写不敏感
vim /etc/my.cnf
  • [mysqld] 段中写入
[mysqld]

lower_case_table_names=1
  • 重启服务
systemctl restart mysqld

9.最大连接数

解决报错:java.sql.SQLNonTransientConnectionException: Data source rejected establishment of connection, message from server: “Too many connections”

  • 查询最大连接数
show variables like 'max_connections';
  • 输出内容:默认 151
+-----------------+-------+
| Variable_name   | Value |
+-----------------+-------+
| max_connections | 151   |
+-----------------+-------+
1 row in set (0.05 sec)
  • 编辑 my.cnf ;修改为 1000
vim /etc/my.cnf
  • [mysqld] 段中写入
max_connections = 1000
  • 重启 MySQL 服务
systemctl restart mysqld

10.导入数据

  • 创建数据库(MySQL 客户端中执行)
CREATE DATABASE nacos_config;
use nacos_config;
  • 运行 SQL 文件
source /opt/nacos/conf/mysql-schema.sql;
  • 查询表
SHOW TABLES;

11.查询版本信息

  • 查询 MySQL 版本信息(MySQL 客户端中执行)
select version() from dual;
  • 输出内容
+-----------+
| version() |
+-----------+
| 8.0.34    |
+-----------+

12.常用命令

功能 命令
systemctl start mysqld 启动服务
systemctl enable mysqld 开机自启动
systemctl status mysqld 服务状态
systemctl restart mysqld 重启服务
systemctl stop mysqld 停止服务
mysql -uroot -p 客户端登录

你可能感兴趣的:(#,CentOS,#,Database,mysql,mysql80,mysql8.0)