关于Linux下MySQL密码得相关问题
第一种安装方式(初始化的磁盘,会先下载mariadb)
首先进行yum安装MySQL
yum install mysql 这样是行不通的,以目前mysql5.7来说,是下载不下来的
/*然后执行一个 mysql -v
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)
这个时候回报一个mysql-server错误*/
yum install mysql-server
/*这个时候有可能会报两个错误
一、依赖错误*/
# Error downloading packages:
# mysql-community-client-5.7.26-1.el6.x86_64: [Errno 256] No more mirrors to try.
# mysql-community-common-5.7.26-1.el6.x86_64: [Errno 256] No more mirrors to try.
# mysql-community-libs-5.7.26-1.el6.x86_64: [Errno 256] No more mirrors to try.
** 解决思路
** 接下来,我们需要去清楚缓存
yum clean cache
yum makecache
** 清楚完毕之后,再去执行
yum install mysql-server
** 这个时候应该就差不多可以了
/*二、mysql-server错误
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
No package mysql-server available.
Error: Nothing to do
出现这个错误说明是,你的yum包里面没有mysql-server这个rpm包
*/
** 解决思路
** 下载rpm包
rpm -ivh https://repo.mysql.com//mysql57-community-release-el7-11.noarch.rpm
** 然后进行yum
yum install mysql-server
第二种安装方式 (推荐)
下载并安装MySQL官方的 Yum Repository
// 首先从mysql社区中下载rpm得安装包。懒得下载得人,可以以我这个为例
wget -i -c http://dev.mysql.com/get/mysql57-community-release-el7-10.noarch.rpm
** 需要其他版本得可以去mysql社区寻找
yum -y install mysql57-community-release-el7-10.noarch.rpm
** 接下来执行,有依赖会自行下载,时间可能会久一点,如果之前执行过yum install mysql
** 执行下面的操作会把之前的mariadb覆盖
yum -y install mysql-community-server
安装成功之后我们启动MySQL
mysql-server成功了之后,使用centos7的启动命令,如果您是CentOS6,建议先使用一下yum -y update
如果使用mysql-server不行,就换成mysqld
systemctl start mysql-server 开启
systemctl stopmysql-server 停止
systemctl restart mysql-server 重启
启动成功之后,我们进入mysql,进行操作
mysql -uroot -p
Enter password:
** 第一次进入咱们不知道密码,咱也不敢问啊这个时候就会出现这个错误
# ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO) :没有输入直接回车
# ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES) :瞎**乱输入,没有进去
** 首次进入mysql 先在Linux中找一下mysql的配置
find / -name my.cnf
** 如下图,我们使用vim进入之后,在mysqld下面加一段那个代码,可以免密进入数据库
# skip-grant-tables
** systemctl restart mysqld 重启MySQL,使配置文件重新加载
** 添加进去之后,密码为root,或者没有
mysql -uroot -p /*回车回车,进入数据库,接下来我们去修改密码*/
show databases; /*看一下数据库,多练习练习基础命令*/
use mysql; /*我们去修改密码啦*/
# 这个地方我们要知道自己的数据库是什么版本,因为版本不同,使用的命令也不同
# mysql5.7:
mysql> update mysql.user set authentication_string=password('123456') where user='root'; #修改密码成功
# mysql5.6:
mysql> update user set password=password(“123456”) where user=”root”; #修改密码成功
#看版本找不同,你值得拥有,修改完看一下是不是返回的 ok
# Query OK, 1 row affected, 1 warning (0.00 sec)
# Rows matched: 1 Changed: 1 Warnings: 1
mysql> flush privileges; #刷新缓存,立即生效
# 然后退出mysql。找到my.cnf,把那个代码去掉。
** systemctl restart mysqld 重启MySQL,使配置文件重新加载
** 然后进入可能会报,这样的错误
** ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing this statement.
这样的话,修改validate_password_policy参数的值
mysql> set global validate_password_policy=0;
Query OK, 0 rows affected (0.00 sec)
validate_password_length(密码长度)参数默认为8,我们修改为1
mysql> set global validate_password_length=1;
Query OK, 0 rows affected (0.00 sec)
4,完成之后再次执行修改密码语句即可成功
mysql> alter user 'root'@'localhost' identified by '123456';
Query OK, 0 rows affected (0.00 sec)