近期项目需要配合mysql一起记录相关数据,于是在服务器搭建了mysql,顺便记录一下搭建步骤和踩坑解决步骤
cd /usr/local/
mkdir -p tools
mkdir -p mysql
cd tools/
rpm -qa | grep mysql
或
yum list installed | grep mysql
yum -y remove mysql-libs.x86_64
wget http://repo.mysql.com/mysql57-community-release-el7-8.noarch.rpm
rpm -ivh mysql57-community-release-el7-8.noarch.rpm
执行完成后会在/etc/yum.repos.d/目录下生成两个repo包:
mysql-community.repo
mysql-community-source.repo
注意:必须进入到 /etc/yum.repos.d/目录后再执行以下脚本
yum install mysql-server
Check that the correct key URLs are configured for this repository.
软件开发商在释出 RPM 文件时,会在其中添加数字签名,并释出用于验证数字签名的公钥。使用 rpm 安装软件时,rpm 会首先根据系统中已有的公钥去验证 RPM 文件的数字签名。gpg keys 就是公钥。
yum安装的时候就会校验软件包是否是官方发布的。当然可以给yum添加–nogpgcheck来强制安装,如下命令即可
yum install mysql-server --nogpgcheck
所以在安装的时候会比对已有的公钥,发现不正确,报错了
2. 启动msyql:
systemctl start mysqld #启动MySQL
grep 'temporary password' /var/log/mysqld.log
mysql -u root -p
然后输入密码(刚刚获取的临时密码)
倘若获取临时密码,登录报错ERROR 1045 (28000): Access denied for user ‘root’@‘localhost’ (using password: YES)
service mysqld stop
vim /etc/my.cnf
然后,搜索mysqld,找到[mysqld],在最后加上添加一行语句:
/mysqld(在vim编辑状态下直接输入该命令可搜索文本内容)。
注:windows下修改的是my.ini。
在 [mysqld] 底下添加语句:
skip-grant-tables
(注:skip-grant-tables:不启动grant-tables授权表,作为启动参数的作用:MYSQL服务器不加载权限判断,任何用户都能访问数据库)
这是用来跳过密码验证的,添加之后保存退出。
输入上面得到的密码进入,用该密码登录后,必须马上修改新的密码,不然会报如上述错误:
如果你想要设置一个简单的测试密码的话,比如设置为123456,会提示这个错误,报错的意思就是你的密码不符合要求:
ERROR 1819 (HY000): Your password does not satisfy the current policy requirements
这个其实与validate_password_policy的值有关。
validate_password_policy有以下取值:
默认是1,即MEDIUM,所以刚开始设置的密码必须符合长度,且必须含有数字,小写或大写字母,特殊字符。
有时候,只是为了自己测试,不想密码设置得那么复杂,譬如说,我只想设置root的密码为123456。
必须修改两个全局参数:
mysql> set global validate_password_policy=0;
Query OK, 0 rows affected (0.00 sec)
mysql> set global validate_password_length=1;
Query OK, 0 rows affected (0.00 sec)
mysql> alter user 'root'@'localhost' identified by '654321';
Query OK, 0 rows affected (0.00 sec)
systemctl start mysqld #启动MySQL
mysql -u root -p
密码直接回车
5.1、看当前所有数据库:show databases;
5.2、进入mysql数据库:use mysql;
5.3、查看mysql数据库中所有的表:show tables;
5.4、查看user表下的角色和密码,
注意:5.7版本下的mysql数据库下已经没有password这个字段了,password字段改成了authentication_string
select Host,User,authentication_string from user;
update user set authentication_string=password(“新密码”) where user=”用户名”;
CentOS7下安装mysql5.7
在 CentOS7 上安装 MySQL5.7
MySQL1045错误解决方法