赞
踩
- centos 7.9
- mysql 5.7.37
安装方式:源码编译安装 ,yum 方式安装固然简单,但是会将安装文件分散到不同的目录结构下,会对配置造成不便
注:centos7系统自带mariadb数据库,先卸载再安装mysql,防止有冲突。 查询是否有安装的mariadb文件,执行命令,如图:
rpm -qa | grep mariadb
若存在,则执行如下命令卸载:
- # 根据上述命令展示的信息替换如下的版本
- rpm -e --nodeps mariadb-libs-5.5.56-2.el7.x86_64
地址如下:MySQL :: Begin Your Download 右键获取下载链接
wget https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.37-el7-x86_64.tar.gz
tar -xvzf mysql-5.7.37-el7-x86_64.tar.gz
tar -xvzf mysql-5.7.37-el7-x86_64.tar.gz
执行后效果如图:
- # 进入mysql的安装目录
- cd /usr/local/mysql
- # 执行创建文件夹命令
- mkdir data
groups mysql
若没有,则执行如下命令添加
- groupadd mysql
- useradd-r -g mysql mysql
- cd /usr/local/mysql
- chown -R mysql .
- chgrp -R mysql .
bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data
执行命令:
- cd/usr/local/mysql/support-files
- cp mysql.server /etc/init.d/mysql
- #赋予mysql 可执行权限
- chmod+x /etc/init.d/mysql
- #添加mysql服务
- chkconfig --add mysql
- #查看自启动服务列表
- chkconfig --list
- #如果看到mysql的服务,并且3,4,5都是on的话则成功
- #如果是off,则键入chkconfig --level 345 mysql on
- service mysql start
- # 修改打开的配置文件,将basedir 和 datadir 分别指向
- /usr/local/mysql 和 /usr/local/mysql/data 目录
创建my.cnf文件,执行命令
- #创建新文件
- vi/etc/my.cnf
- #增加如下配置
- [mysqld]
- server-id= 1
- port= 3306
-
- basedir=/usr/local/mysql
- datadir= /usr/local/mysql/data
- transaction_isolation= READ-COMMITTED
- character-set-server= utf8mb4
- collation-server= utf8mb4_general_ci
- init_connect=‘SET NAMES utf8mb4‘
- lower_case_table_names= 1
- max_connections= 1000
- sql_mode="STRICT_TRANS_TABLES,IGNORE_SPACE,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"
-
- log-output=FILE
- general-log=0
- general_log_file="slow.log"
- slow-query-log=1
- long_query_time=2.5
-
- log_bin=ON
- log_bin_trust_function_creators=1
- innodb_buffer_pool_size=5120M # 根据系统内存可用数进行配置,最大不超过可用数的80%
如图:
ln -s/usr/local/mysql/bin/mysql /usr/bin
- #启动mysql
- /etc/init.d/mysql start
- #开始登陆
- mysql-u root -p
如图表示登陆成功
- # 修改默认密码
- set password=password('zsh_9007');
- # 允许远程登陆
- grant all privilegeson*.*to'root'@'%'identifiedby 'zsh_9007';
- flush privileges;
使用navicat等mysql客户端连接测试,如图:
- #修改/etc/my.cnf,增加如下一行
- require_secure_transport = ON
- cd /usr/local/mysql/bin && ./mysql_ssl_rsa_setup --uid=mysql
- /bin/sh /usr/local/mysql/bin/mysqld_safe --defaults-file=/etc/my.cnf --datadir=/usr/local/mysql/data --pid-file=/usr/local/mysql/data/localhost.localdomain.pid
- mysql > create user 'sudouser'@'%' identified by '0000';
- mysql > grant all on *.* to 'sudouser'@'%' identified by '0000' require ssl;
- mysql > flush privileges;
mysql -u root -p --ssl-mode=require
登录后,进入mysql,查看ssl相关参数:
mysql > show variables like '%ssl%';
Navicat配置:
jdbc:mysql:/localhost:3306/test?verifyServerCertificate=false&useSSL=true&characterEncoding=utf-8
注意:开启 general log 将所有到达MySQL Server的SQL语句记录下来。 一般不会开启开功能,因为log的量会非常庞大。但个别情况下可能会临时的开一会儿general log以供排障使用。
- log-output=TABLE
- general_log=ON
在mysql库中就能看到 general_log表,存储引擎默认是CSV。
- vim /general_log_fresh.sql
- #脚本如下:
- SETGLOBAL general_log = 'OFF';
- use mysql;
- RENAMETABLE mysql.general_log TO mysql.general_log_temp;
- DELETEfrom mysql.general_log_temp where event_time <DATE_ADD(curdate(),INTERVAL-15DAY);
- RENAMETABLE mysql.general_log_temp TO general_log;
- SETGLOBAL general_log = 'ON';
每天凌晨1点执行清理
- #执行
- crontab -e
- #设置如下内容
- 0 1 * * * mysql -uroot -p'0000' --ssl_mode=require < /usr/local/general_log_fresh.sql
修改 /etc/my.cnf,加入以下配置,然后重启mysql服务:
- plugin-load=validate_password.so
- validate_password_check_user_name=ON
- validate_password_policy= MEDIUM
- validate_password_length= 10
- validate_password_mixed_case_count= 2
- validate_password_number_count= 2
- validate_password_special_char_count= 2
说明:
- validate_password_policy:密码安全策略,默认MEDIUM策略
- 策略 检查规则:
- 0 or LOW Length
- 1 or MEDIUM Length; numeric, lowercase/uppercase, and special characters
- 2 or STRONG Length; numeric, lowercase/uppercase, and special characters; dictionary file
- validate_password_dictionary_file:密码策略文件,策略为STRONG才需要
- validate_password_length:密码最少长度
- validate_password_mixed_case_count:大小写字符长度,至少1个
- validate_password_number_count:数字至少1个 validate_password_special_char_count:特殊字符至少1个
创建一个用户试试:
- mysql>createuser'sudo2'@'%'identifiedby '0000';
- ERROR 1819 (HY000): Your password does not satisfy the current policy requirements
- mysql>createuser'sudo2'@'%'identifiedby '123456&^Aa';
- ERROR 1819 (HY000): Your password does not satisfy the current policy requirements
- mysql>createuser'sudo2'@'%'identifiedby '1234Bb&^Aa';
- Query OK, 0 rows affected (0.00 sec)
- mysql>flushprivileges;
- Query OK, 0 rows affected (0.00 sec)
安装过程可能存在的问题:
1.初始化的密码丢失
进入mysql 安全模式,重置密码
2.mysql 初始化时创建文件失败
检查登陆用户是否对这些文件夹存在权限
3.建议的启动方式:失败自动重启服务:
/bin/sh /usr/local/mysql/bin/mysqld_safe --defaults-file=/etc/my.cnf --datadir=/usr/local/mysql/data
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。