文章目录
在Linux上安装mysql,错误总结与安装过程
1.卸载mysql
Linux 上自带 mysql,但为了符合一些要求需要安装对应版本的 mysql ,就需要卸载linux自带的mysql,重新安装
shell语句卸载
`首先查看当前 Linux 上的 mysql
'[root@localhost /] #' rpm -qa | grep mysql
`
出现图中多个 mysql,全部卸载
然后使用shell语句卸载 linux上 的mysql
for file in `rpm -qa | grep mysql`;do rpm -ev $file --nodeps;done
2.安装mysql
yum安装
`
下载 mysql 包
wget -i -c http://dev.mysql.com/get/mysql57-community-release-el7-10.noarch.rpm
安装 rpm 包
yum -y install mysql57-community-release-el7-10.noarch.rpm
安装 mysql 服务
yum -y install mysql-community-server
安装 mysql 服务依赖
yum -y install mysql-devel
`
如果不想wget下载或者觉得下载比较慢的话 ,可使用百度云下载
链接: https://pan.baidu.com/s/1z3O5KyNR3BIBV3iuTVBrgw 提取码: k2ku
3.错误总结
错误一、登录报错
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)
解决方法一、mysqld --user=root --skip-grant-tables & 式
'[root@localhost /] #' ` mysql -uroot -p `
输入密码后,出现了下方错误:
'ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES'
执行命令:
'[root@localhost /] #' ` mysqld --user=root --skip-grant-tables & `
登录mysql:
'[root@localhost /] #'` mysql -uroot `
更新root密码
mysql5.7以下版本:
'mysql>' ` UPDATE mysql.user SET Password=PASSWORD('你的密码') where USER='root'; `
mysql5.7版本:
'mysql> '` UPDATE mysql.user SET authentication_string=PASSWORD('你的密码') where USER='root'; `
刷新权限:
'mysql>'` flush privileges; `
退出mysql:
'mysql>'` exit `
使用root用户重新登录mysql
'[root@localhost /] #'` mysql -uroot -p `
输入新设的密码
解决方法二、修改my.cnf
'[root@localhost /] #' ` mysql -uroot -p `
输入密码后,出现了下方错误:
'ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES'
修改 /etc/my.cnf 文件
'[root@localhost /] #' `vi /etc/my.cnf `
在 [mysqld] 下面写上 ' skip-grant-tables '
`
# For advice on how to change settings please see
# http://dev.mysql.com/doc/refman/5.7/en/server-configuration-defaults.html
[mysqld]
skip-grant-tables
#
# Remove leading # and set to the amount of RAM for the most important data
# cache in MySQL. Start at 70% of total RAM for dedicated server, else 10%.
# innodb_buffer_pool_size = 128M
`
修改完成后保存退出
重启 mysql server
'[root@localhost /] #' ` systemctl restart mysqld`
登录 mysql
'[root@localhost /] #' ` mysql -uroot `
切换 mysql 库
'mysql >' ` use mysql; `
修改 root 密码
mysql5.7以下版本:
'mysql>' ` UPDATE mysql.user SET Password=PASSWORD('你的密码') where USER='root'; `
mysql5.7版本:
'mysql>' ` update mysql.user set authentication_string=password('你的密码') where user='root'; `
刷新权限:
'mysql>'` flush privileges; `
退出mysql:
'mysql>'` exit `
修改 /etc/my.cnf 文件
'[root@localhost /] #' `vi /etc/my.cnf `
在 [mysqld] 下面注释或删除 ' skip-grant-tables '
`
# For advice on how to change settings please see
# http://dev.mysql.com/doc/refman/5.7/en/server-configuration-defaults.html
[mysqld]
# skip-grant-tables
#
# Remove leading # and set to the amount of RAM for the most important data
# cache in MySQL. Start at 70% of total RAM for dedicated server, else 10%.
# innodb_buffer_pool_size = 128M
`
重启 mysql server
'[root@localhost /] #' ` systemctl restart mysqld`
使用root用户重新登录mysql
'[root@localhost /] #'` mysql -uroot -p `
输入新设的密码
错误二、切换数据库报错
ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing this statement.
解决方法一、 alter user 直接修改密码
登录mysql
输入指令 ` use mysql; `
发现 ` ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing this statement.` 报错
修改用户密码
mysql>` alter user 'root'@'localhost' identified by '你的密码'; `
刷新权限
mysql> ` flush privileges; `
解决方法二、修改 variables 密码规则
登录mysql
输入指令 ` use mysql; `
发现 ` ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing this statement.` 报错
先修改一个满足的密码
mysql> ` set password='Root_12root' `
查看 validate_password 表
mysql> ` show variables like 'validate_password%'; `
+--------------------------------------+-------+
| Variable_name | Value |
+--------------------------------------+-------+
| validate_password_check_user_name | OFF |
| validate_password_dictionary_file | |
| validate_password_length | 8 |
| validate_password_mixed_case_count | 1 |
| validate_password_number_count | 1 |
| validate_password_policy | LOW |
| validate_password_special_char_count | 1 |
+--------------------------------------+-------+
修改密码强度等级
mysql> ` set global validate_password_policy=0; `
修改密码最小长度
mysql> ` set global validate_password_length=1; `
再次查看 validate_password 表
mysql> ` show variables like 'validate_password%'; `
+--------------------------------------+-------+
| Variable_name | Value |
+--------------------------------------+-------+
| validate_password_check_user_name | OFF |
| validate_password_dictionary_file | |
| validate_password_length | 4 |
| validate_password_mixed_case_count | 1 |
| validate_password_number_count | 1 |
| validate_password_policy | LOW |
| validate_password_special_char_count | 1 |
+--------------------------------------+-------+
重新设置密码
mysql> ` set password='你的新密码' `
刷新权限
mysql> ` flush privileges; `
附上一份 Variable_name 中文对照表
Variable_name | - |
---|---|
validate_password_dictionary_file | 插件用于验证密码强度的字典文件路径。 |
validate_password_length | 密码最小长度。 |
validate_password_mixed_case_count | 密码至少要包含的小写字母个数和大写字母个数。 |
validate_password_number_count | 密码至少要包含的数字个数。 |
validate_password_policy | 密码强度检查等级,0/LOW、1/MEDIUM、2/STRONG。 |
validate_password_special_char_count | 密码至少要包含的特殊字符数。 |
错误三、连接报错,拒绝连接
登录mysql
'[root@localhost /] #'` mysql -u root -p `
切换数据库
mysql> ` use mysql `
修改 root 登录权限
mysql> ` update user set host = '%' where user = 'root'; `
刷新权限
mysql> ` flush privileges; `