linux版本:Centois7
mysql版本:mysql-8.0.16 主要版本要一致
1、下載
下載地址 :https://dev.mysql.com/downloads/mysql/
選擇:
2、將tar包上傳至服務器
3、刪除原來的mariadb
先查看一下是否已經安裝了,命令:rpm -qa|grep mariadb
刪除mariadb,命令:rpm -e --nodeps mariadb-libs
4、解壓mysql離線安裝包
cd /home/soft tar -xvf mysql-8.0.16-2.el7.x86_64.rpm-bundle.tar
解壓后包含如下rpm包:
mysql-community-libs-8.0.16-2.el7.x86_64.rpm mysql-community-embedded-compat-8.0.16-2.el7.x86_64.rpm mysql-community-devel-8.0.16-2.el7.x86_64.rpm mysql-community-server-8.0.16-2.el7.x86_64.rpm mysql-community-libs-compat-8.0.16-2.el7.x86_64.rpm mysql-community-client-8.0.16-2.el7.x86_64.rpm mysql-community-common-8.0.16-2.el7.x86_64.rpm mysql-community-test-8.0.16-2.el7.x86_64.rpm
5、安裝rpm
逐個安裝,命令如下: 【必須安裝】 rpm -ivh mysql-community-common-8.0.16-2.el7.x86_64.rpm rpm -ivh mysql-community-libs-8.0.16-2.el7.x86_64.rpm rpm -ivh mysql-community-client-8.0.16-2.el7.x86_64.rpm rpm -ivh mysql-community-server-8.0.16-2.el7.x86_64.rpm 【非必須安裝】 rpm -ivh mysql-community-libs-compat-8.0.16-2.el7.x86_64.rpm rpm -ivh mysql-community-embedded-compat-8.0.16-2.el7.x86_64.rpm rpm -ivh mysql-community-devel-8.0.16-2.el7.x86_64.rpm rpm -ivh mysql-community-test-8.0.16-2.el7.x86_64.rpm
錯誤1:
warning: mysql-community-devel-8.0.16-2.el7.x86_64.rpm: Header V3 DSA/SHA1 Signature, key ID 5072e1f5: NOKEY error: Failed dependencies: pkgconfig(openssl) is needed by mysql-community-devel-8.0.16-2.el7.x86_64
解決方法1:
yum install openssl-devel.x86_64 openssl.x86_64 -y
錯誤2:
warning: mysql-community-test-8.0.16-2.el7.x86_64.rpm: Header V3 DSA/SHA1 Signature, key ID 5072e1f5: NOKEY error: Failed dependencies: perl(Data::Dumper) is needed by mysql-community-test-8.0.16-2.el7.x86_64 perl(JSON) is needed by mysql-community-test-8.0.16-2.el7.x86_64
解決方法2:
yum install perl.x86_64 perl-devel.x86_64 -y yum install perl-JSON.noarch -y yum -y install autoconf
6、mysql服務指令
mysql -V 看長安裝版本
systemctl status mysqld 查看狀態
systemctl start mysqld 啟動mysql
systemctl stop mysqld 停止mysql
7、初始化mysql
關掉mysql:
systemctl stop mysqld
初始化先先編輯my.cnf文件:
vim /etc/my.cnf
在文件末尾追加內容:
#無密碼登錄 skip-grant-tables #忽略大小寫 lower_case_table_names=1
最后初始化:
mysqld --initialize --console --lower-case-table-names=1
8、目錄授權
chown -R mysql:mysql /var/lib/mysql/
授權完啟動mysql:
systemctl start mysqld
9、mysql操作
登錄mysql:
mysql -u root -p 注意:直接回車掉過密碼輸入
登錄如果操作報錯:
--必須先執行 flush privileges,否則會報The MySQL server is running with the --skip-grant-tables option so it cannot execute this statement
需要先執行指令:
flush privileges;
修改密碼:
alter USER 'root'@'localhost' IDENTIFIED BY '123456';
授權遠程連接:
show databases; use mysql; select host, user, authentication_string, plugin from user;
update user set host = "%" where user='root'; select host, user, authentication_string, plugin from user; flush privileges;
嘗試遠程登錄:
遠程登錄前需要指定防火牆訪問端口,這步驟這里先忽略,不動可以去參考 url
解決辦法:
mysql -u root -p(回車后,輸入更改后的密碼123456) use mysql; alter USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '123456'; flush privileges;
最后記得,把etc/my.cnf 中的 skip-grant-tables 注釋掉,重啟mysql就可以使用了。