MySQL Database Service数据库服务器具有以下特点: 具有分析引擎的MySQL数据库服务: MySQL数据库服务是一项完全托管的数据库服务,可使用世界上最受欢迎的开源数据库来部署云原生应用程序。MySQL Analytics Engine将性能提高了400倍。 MySQL企业版: 最全面的一组高级功能,管理工具和技术支持,可实现最高级别的MySQL可扩展性,安全性,可靠性和正常运行时间。 适用于OEM / ISV的MySQL: 2000多家ISV,OEM和VAR依靠MySQL作为其产品的嵌入式数据库,以使其应用程序,硬件和设备更具竞争力,更快地将其推向市场,并降低其销售成本。 MySQL集群CGE: MySQL Cluster使用户能够以不妥协的可扩展性,正常运行时间和敏捷性来应对下一代Web,云和通信服务的数据库挑战。 数据库安装分为源码安装和RPM安装包安装,今天先进行RPM包安装,后续教程使用源码安装 1.安装环境,Redhat系的Linux版本Red Hat Enterprise Linux Server release 7.9 (Maipo)(cat /etc/redhat-release)
下载Mysql的时候不需要进行注册,直接点击下载
3.检查本机是否有 mysql的安装包,如果有,需要删掉, *注意:同时在REDHAT 7和CENTOS7系统默认集成了mariadb数据,所以在安装的时候需要删掉mariadb数据库(该数据的开发者是原Mysql的老板), 3.1.查看:rpm -qa|grep mysql 删除:rpm -e --nodeps 包名 –nodeps表示不检查依赖关系,直接删除rpm包 3.2.查看和删除mariadb数据库以免对安装的时候提示错误
rpm -qa|grep mariadb
mariadb-libs-5.5.60-1.el7_5.x86_64 rpm -e --nodeps mariadb-libs-5.5.60-1.el7_5.x86_64//删除成功https://blog.csdn.net/weixin_43408503/article/details/103526143 linux中安装mysql时报错解决方案(file /usr/share/mysql/charsets/README from install of MySQL-server-5.6.24-1.el)
3.3删除mysql的所有目录,后续我们也要使用 查看:find / -name mysql 删除:rm -rf /etc/mysql 4.准备工作做好之后,cd /opt/mysql/创建mysql文件夹,把刚下载好的 mysql 安装包传输到此文件夹下,可以使用SSH工具上传(SecureCRT、SSH、xshell、SSH); 5.解压 tar -xvf mysql-8.0.19-1.el6.x86_64.rpm-bundle.tar
6.开始安装我们的数据库,并对里边的模块进行安装: 6.1安装 common: rpm -ivh mysql-community-common-8.0.19-1.el6.x86_64.rpm --nodeps --force 6.2.安装 libs: rpm -ivh mysql-community-libs-8.0.19-1.el6.x86_64.rpm --nodeps --force 6.3安装 client: rpm -ivh mysql-community-client-8.0.19-1.el6.x86_64.rpm --nodeps --force 6.4.安装mysql server : rpm -ivh mysql-community-server-8.0.19-1.el6.x86_64.rpm --nodeps --force 6.5.验证 mysql 的安装包安装情况: rpm -qa | grep mysql 命令查看
6.6.安装成功后,对mysql进行一些基本配置: 修改配置文件my.cnf必须在mysql初始化前完成,否则会导致数据库启动失败 官方文档lower_case_table_names can only be configured when initializing the server. Changing the lower_case_table_names setting after the server is initialized is prohibited(禁止在服务初始化之后,修改大小写敏感配置) 需要我们对配置文件进行修改,由于安装的时候我们使用的root用户安装,所以需要在配置文件中制定user=root:; vi /etc/my.cnf
2.增加一些初始化的信息:
[client]
port=3306
socket=/var/lib/mysql/mysql.sock
[mysqld]
port=3306
user=root
//如果是用root就写root,如果使用mysql用户就写mysql#默认加密方式default-authentication-plugin=mysql_native_password
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
#1表示大小写不敏感,0表示大小写敏感lower_case_table_names=1
#限制server接受的数据包大小max_allowed_packet=20M
#开启慢查询slow_query_log=1
#慢查询最大时间5秒long_query_time=5
#时区default-time_zone='+8:00'
#关闭binlog日志skip-log-bin
#sql语法校验sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION
7.mysql 初始化
mysqld --initialize
8.启动服务 现在使用 systemctl 启动mysql守护进程
systemctl start mysqld
第一次启动mysql会初始化数据库,所以需要点时间; 9.查看root密码 初始化数据库的时候会为root设置一个默认密码,这个密码在log文件中可以找到
less /var/log/mysqld.log # 查看日志查看密码
# 会有一行 password is generated XXXXX
或者可以使用下面语句直接提取出密码:
grep "password is generated" /var/log/mysqld.log | awk '{print $NF}'
10.找到密码后可以用以下命令输入密码进入数据库
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'new password';
这里的新密码不能太简单,因为mysql默认对密码有复杂度要求 对于这种情况要么修改密码策略,要么修改权限等级,建议先按照要求修改密码,再做其他操作;也就是说如果不修改,你无法进行其他操作;
1.查看 mysql 初始的密码策略,
输入语句 “ SHOW VARIABLES LIKE 'validate_password%'; ” 进行查看。
2.首先需要设置密码的验证强度等级,设置 validate_password_policy 的全局参数为 LOW 即可,
输入设值语句 “ set global validate_password_policy=LOW; ” 进行设值。
3.当前密码长度为 8 ,如果不介意的话就不用修改了,按照通用的来讲,设置为 6 位的密码,设置 validate_password_length 的全局参数为 6 即可,
输入设值语句 “ set global validate_password_length=6; ” 进行设值。
4.现在可以为 mysql 设置简单密码了,只要满足六位的长度即可,
输入修改语句 “ ALTER USER 'root'@'localhost' IDENTIFIED BY '123456'; ” 可以看到修改成功,表示密码策略修改成功了!!!
注:在默认密码的长度最小值为 4 ,由 大/小写字母各一个 + 阿拉伯数字一个 + 特殊字符一个,
只要设置密码的长度小于 3 ,都将自动设值为 4 。
关于 mysql 密码策略相关参数;
1)validate_password_length 固定密码的总长度;
2)validate_password_dictionary_file 指定密码验证的文件路径;
3)validate_password_mixed_case_count 整个密码中至少要包含大/小写字母的总个数;
4)validate_password_number_count 整个密码中至少要包含阿拉伯数字的个数;
5)validate_password_policy 指定密码的强度验证等级,默认为 MEDIUM;
关于 validate_password_policy 的取值:
0/LOW:只验证长度;
1/MEDIUM:验证长度、数字、大小写、特殊字符;
2/STRONG:验证长度、数字、大小写、特殊字符、字典文件;
6)validate_password_special_char_count 整个密码中至少要包含特殊字符的个数
可以使用命令 set global 字段值=值;
mysql> set global validate_password_policy=0;
//关闭密码复杂性策略mysql> set global validate_password_length=4;
//设置密码最低长度为4
修改权限之后你就可以修改你得密码了,就不受密码长短限制了