文章目录
- 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
- 安装后的目录
- 安装目录:
/usr/local/mysql
- 数据库文件目录,例如表结构和数据:
/var/lib/mysql
- 日志文件目录:
/var/log/mysql
- 配置文件目录:
/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=3306datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.socklog-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 | 客户端登录 |