安装mysql查看随机密码命令_linux安装mysql-8.0.21-1.el7.x86_64.rpm-bundle - 君主-bye
本文參考
一?? ? 查看linux操作系統版本和系統內核版本
1 [root@nfs_client ~]# cat /etc/redhat-release 查看操作系統版本 2 CentOS Linux release 7.5.1804 (Core) 3 [root@nfs_client ~]# uname -r 查看系統內核版本 43.10.0-862.el7.x86_64 5二? ?下載對應版本的MySQL安裝文件
? ??2、選擇對應的Linux版本和x86/x64進行下載
可以選擇 RPM Bundle,下載完記得解壓? tar -xvf xxx.tar
三 卸載舊版本的MySql (沒有的話,則跳過此步驟)
? ? ??1、查看舊版本MySql
rpm -qa | grep mysqlrpm -e --nodeps {-file-name}
有的系統可能不太一樣,沒有mysql-libs,而是mariadb-libs,此時要移除的則是mariadb-libs
rpm -qa|grep mariadbyum remove mariadb-libs四 安裝MySql?
解壓之后的文件
使用命令rpm -ivh {-file-name}進行安裝操作。
按照依賴關系依次安裝rpm包 依賴關系依次為common→libs→client→server
注:ivh中,?i-install安裝;v-verbose進度條;h-hash哈希校驗
在安裝 時有可能會報錯:mysql依賴錯誤
解決:清除yum里所有mysql依賴包
[root@nfs_client tools]# rpm -qa|grep mysql [root@nfs_client tools]# yum remove mysql-libs注意: 有的系統可能不太一樣,沒有mysql-libs,而是mariadb-libs,此時要移除的則是mariadb-libs [root@nfs_client tools]# rpm -qa|grep mariadb [root@nfs_client tools]# yum remove mariadb-libs注意細節:
1> 執行 yum remove mysql-libs? ?命令后,會自動刪除掉 /etc/ 下的 文件
2> 對于安裝mysql組件,只有安裝了? 組件,才會:
a). 在 /etc/下生成 文件 和 .d 文件夾
b). 在/var/lib/下生產以下三個文件夾
c). 在/var/log/ 下生成 文件
d). 在/var/run/ 下生成?mysqld 目錄
個別情況:
個別情況1:
在阿里云ECS云服務器上安裝,當安裝 時報錯,報錯如下:
[root@i3467544tdsxfrZ ~]# rpm -ivh
warning: :?Header V3 DSA/SHA1 Signature,?key ID 5072e1f5: NOKEY
error: Failed dependencies:
()(64bit) is needed by
()(64bit) is needed by
()(64bit) is needed by
真正原因:
真正的原因是 MySQL依賴libaio,所以先要安裝libaio,我們通過 rpm -qa|grep libaio 命令查看一下,如圖:
經過對比發現,無法正常安裝的服務器的確沒有安裝libaio
所以,解決法案就是:
安裝libaio
[root@iZbp1845cet96se1qmb5ekZ ~]安裝libaio后,再重新安裝一次,此時就能正常安裝了
個別情況2:
比如解決了“個別情況1”,但在啟動mysql的時候,啟動不起來,或啟動后,去查找臨時密碼,使用命令沒反應。查看日志(可在/etc/中查找到的配置位置),報如下錯誤,此時怎么解決?
[ERROR] Fatal error: Can't open and lock privilege tables: Table '' doesn't exist
此時,1>先通過rpm -e --nodeps xxx? 卸載掉server,卸載后刪除datadir目錄,2>卸載后查看 /etc/ 中,datadir的配置情況,將datedir目錄刪除,3>最后通過命令rpm -ivh xxx 重新安裝server,此時就能正常使用mysql了
命令代碼如下:
[root@izbp1845cet96se1qmb5ekz ~]#?rpm -e --nodeps
[root@izbp1845cet96se1qmb5ekz ~]#?cat /etc/
xxxxxxxxxxxxx
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
xxxxxxxxxxxxxxx
[root@izbp1845cet96se1qmb5ekz ~]#?cd /var/lib
[root@izbp1845cet96se1qmb5ekz lib]#?rm -rf mysql
[root@izbp1845cet96se1qmb5ekz ~]#?rpm -ivh
[root@izbp1845cet96se1qmb5ekz ~]#?systemctl start mysqld.service
[root@izbp1845cet96se1qmb5ekz ~]#?ps -ef|grep mysql
root????? 3306? 1068? 0 14:34 pts/0??? 00:00:00 mysql -uroot -p
mysql??? 27009???? 1? 1 15:26 ???????? 00:00:00 /usr/sbin/mysqld --daemonize --pid-file=/var/run/mysqld/mysqld.pid
root???? 27038 26239? 0 15:27 pts/6??? 00:00:00 grep --color=auto mysql
五 登錄并創建MySql密碼
? ??1 啟動MySql
?? ?? ? 安裝完后,使用命令?service mysqld start?或?systemctl start mysqld.service?啟動MySQL服務。(如果mysql服務無法啟動,就重啟一下系統)
systemctl start mysqld.service??? 啟動mysql
systemctl status mysqld.service? 查看mysql狀態
systemctl stop mysqld.service?? 關閉mysql
查看mysql進程 ps -ef|grep mysql
查看3306端口 netstat -anop|grep 3306
?2 登陸mysql修改root密碼
?? ?? ??由于之前的版本中默認是沒有密碼的,登錄后直接回車就可以進入數據庫,進而進行設置密碼等操作。其后版本對密碼等安全相關操作進行了一些改變,在安裝過程中,會在安裝日志中生成一個臨時密碼。
? ? ??怎么找到這個臨時密碼呢?
? ? ??使用:
grep 'temporary password' /var/log/即可查詢到類似于如下的一條日志記錄:
?#o(YH0ff;i30即為登錄密碼。使用這個隨機密碼登錄進去,然后修改密碼,使用命令:
輸入密碼
執行下面的命令修改MySql root密碼
在后,mysql內置密碼增強機制,低強度密碼會報錯:
ERROR 1819 (HY000): Your password does not satisfy the current policy requirements
可能出現密碼不符合策略或過于簡單等提示,建議先使用如下密碼,稍后更改策略再換
?step1:更改策略和修改密碼長度
setglobal validate_password.policy=0; setglobal validate_password.length=1;不管設置? validate_password_length=1,還是2,3,4 ,‘有效密碼長度’這個參數的實際值都是4。超過4后設置是多少實際就是多少。
step2:從新設置密碼
alter user root@localhost identified by '123456';?step3: 授予root用戶遠程訪問權限:
此時,雖然防火墻我時關著的,但root用戶只能用于本機訪問,不能用于遠程訪問,否則會報以下錯誤。因此,接下來要做的是授予root用戶遠程訪問權限。
查看當前授予過的權限:
不推薦直接使用root用戶通過外部訪問數據庫,建議創建用戶給予對應所需權限即可
step4.添加一個新用戶
create user '新用戶名'@'localhost' identified by '密碼'; //允許所有ip連接(用通配符%表示) create user '新用戶名'@'%' identified by '密碼';授權用戶step5.授權用戶
格式:GRANT privileges ON databasename.tablename TO ‘username’@‘host’ 例:給admin用戶授權study數據庫中所有表的所有操作權限 GRANT ALL ON *.* TO 'admin'@'%';privileges:表示要授予什么權力,例如可以有 select ,insert 等,如果要授予全部權力,則填 ALL
databasename.tablename:表示用戶的權限能用在哪個庫的哪個表中,如果想要用戶的權限很作用于所有
的數據庫所有的表,則填 .,*是一個通配符,表示全部。
’username‘@‘host’:表示授權給哪個用戶。
step6:開放3306端口
此時外面遠程訪問還是訪問不到,因為我的防火墻沒有放開3306端口,
firewall-cmd --zone=public --add-port=3306/tcp --permanent firewall-cmd --reload?我用的DataGrip連接會報錯
?我看網上很多人都在說加上serverTimezone=UTC,我的加上不行,最后我發現我要加上useSSL=false&allowPublicKeyRetrieval=true就可以了
總結
以上是生活随笔為你收集整理的安装mysql查看随机密码命令_linux安装mysql-8.0.21-1.el7.x86_64.rpm-bundle - 君主-bye的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 服务器不重启磁盘修复,重启后数据盘不见了
- 下一篇: 什么是m叉树_国考临近考试了,感觉已经没