# 查看是否安裝mysql
rpm -qa | grep -i mysql
# 如果有,需要卸載舊版本Mysql及相關依賴包
rpm -e MySQL-client-***
# 查看開機啟動服務列表狀態
systemctl list-unit-files
# 禁用mysql服務
systemctl disable mysqld
# 查找mysql文件夾 find / -name *mysql*
whereis mysql
# 刪除 對應的目錄下所有文件 注意不要把有用的刪了
rm -rf /use/lib/mysql
卸載系統預置的mariadb,才能安裝mysql。因為centos 和 redhat 內部集成了mariadb, 如果不卸載mariadb,安裝mysql時會和mariadb文件沖突.
# 查詢是否已安裝的mariadb rpm -qa|grep mariadb
# 卸載mariadb,文件名為上述命令查詢出來的文件 rpm -e --nodeps 文件名
# 重啟系統
reboot
創建下載目錄
mkdir /usr/local/mysql8 cd /usr/local/mysql8
Mysql官方地址:
https://dev.mysql.com/downloads/mysql/
# 下載安裝包 wget https://cdn.mysql.com//Downloads/MySQL-8.0/mysql-8.0.17-1.el7.x86_64.rpm-bundle.tar # 解壓 tar -xvf mysql-8.0.17-1.el7.x86_64.rpm-bundle.tar # 按照以下順序安裝 # -i 安裝 -v 列出更多詳細信息 -h 安裝時列出hash標記 rpm -ivh mysql-community-common-8.0.17-1.el7.x86_64.rpm
rpm -ivh mysql-community-libs-8.0.17-1.el7.x86_64.rpm rpm -ivh mysql-community-libs-compat-8.0.17-1.el7.x86_64.rpm rpm -ivh mysql-community-devel-8.0.17-1.el7.x86_64.rpm rpm -ivh mysql-community-client-8.0.17-1.el7.x86_64.rpm rpm -ivh mysql-community-server-8.0.17-1.el7.x86_64.rpm
rpm -ivh mysql-community-test-8.0.17-1.el7.x86_64.rpm
錯誤:依賴檢測失敗:perl(JSON) 被 mysql-community-test-8.0.17-1.el7.x86_64 需要
因為缺少perl-JSON依賴包.
#查找perl-JSON相關包名稱 yum list perl-JSON 或 yum list |grep "perl-JSON" # 安裝perl-JSON yum install -y perl-JSON-2.59-2.el7.noarch
#重新安裝
rpm -ivh mysql-community-test-8.0.17-1.el7.x86_64.rpm
mysql安裝完成.
# 查看mysql服務運行狀態 systemctl status mysqld # 啟動mysqld服務 systemctl start mysqld # 查看臨時密碼 grep -i password /var/log/mysqld.log # 使用臨時密碼登錄 mysql -u root -p'密碼'
修改root用戶默認密碼 我執行 以下語句一直是等待輸入的狀態, 不太熟悉mysql, 查了一個多小時沒查到什么問題, 問了下群里告訴我說 少了 ; , 輸入; 就可以了.
# 缺少 ; 語句后不加; 不會返回執行結果, 顯示等待輸入, 一定要加; 表示語句結束. 顯示等待輸入, 此時輸入; 回車就可以了.
alter USER 'root'@'localhost' IDENTIFIED BY 'DEFg@ABC1'
# 正確的語句
alter USER 'root'@'localhost' IDENTIFIED BY 'DEFg@ABC1';
修改root用戶遠程登錄
#切換數據庫 use mysql; # 查看用戶是否允許遠程登錄 localhost 僅本地 % 可以遠程登錄 select host,user, authentication_string, plugin from user; # 修改root用戶可遠程登錄. update user set host = "%" where user='root';
使用遠程工具連接mysql8.0, 賬戶密碼都正確但是報錯. 查了下具體是因為:之前版本MySQL的密碼認證插件為“mysql_native_password”,新版本改為:“caching_sha2_password”.
#修改為舊的密碼認證方式. use mysql; alter USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'DEFg@ABC1'; flush privileges;
修改完就可以使用遠程管理工具連接mysql8.0.17了.
一個重要的命令:
#退出mysql
quit
重要的目錄:
datadir=/var/lib/mysql
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
# 查看運行進程 ps -ef | grep mysqld # 查看端口 netstat -tulpn |grep mysqld 服務操作: # 啟動服務 systemctl start mysqld # 重啟服務 systemctl restart mysqld # 加入開機啟動 systemctl enable mysqld; # 停止運行服務 systemctl stop mysqld ; # 加入開機禁用 systemctl disable mysqld; # 查看狀態 systemctl status mysqld; # 查看httpd的開機啟動狀態列表 systemctl list-unit-files;