關於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)