原文借鑒:https://www.runoob.com/mysql/mysql-install.html
MySQL 安裝
所有平臺(tái)的 MySQL 下載地址為:https://dev.mysql.com/downloads/mysql/
安裝前隧甚,我們可以檢測(cè)系統(tǒng)是否自帶安裝 MySQL:
rpm -qa|grep -i mysql
如果你系統(tǒng)有安裝抽兆,那可以選擇進(jìn)行依次卸載:
rpm -ev mysql-community-libs-compat-8.0.27-1.el7.x86_64 --nodeps
查找之前老版本mysql的目錄、并且刪除老版本mysql的文件和庫(kù)
find / -name mysql
依次刪除對(duì)應(yīng)的mysql目錄
rm -rf /var/lib/mysql
安裝 MySQL:
接下來(lái)我們?cè)?Centos7 系統(tǒng)下使用 yum 命令安裝 MySQL疙筹,需要注意的是 CentOS 7 版本中 MySQL數(shù)據(jù)庫(kù)已從默認(rèn)的程序列表中移除简逮,所以在安裝前我們需要先去官網(wǎng)下載 Yum 資源包鸟赫,下載地址為:https://dev.mysql.com/downloads/repo/yum/
wget https://dev.mysql.com/get/mysql80-community-release-el7-4.noarch.rpm
rpm -ivh mysql-community-release-el7-5.noarch.rpm
yum update
yum install mysql-server
權(quán)限設(shè)置:
chown -R mysql:mysql /var/lib/mysql
初始化 MySQL:
mysqld --initialize
啟動(dòng) MySQL:
systemctl start mysqld
如報(bào):Job for mysqld.service failed because the control process exited with error code. See "systemctl status mysqld.service" and "journalctl -xe" for details.
說(shuō)明權(quán)限沒(méi)有配置成功师郑,重新執(zhí)行一遍權(quán)限,初始化操作
查看 MySQL 運(yùn)行狀態(tài):
systemctl status mysqld
注意:如果我們是第一次啟動(dòng) mysql 服務(wù)漫蛔,mysql 服務(wù)器首先會(huì)進(jìn)行初始化的配置嗜愈。
此外,你也可以使用 MariaDB 代替,MariaDB 數(shù)據(jù)庫(kù)管理系統(tǒng)是 MySQL 的一個(gè)分支惩猫,
主要由開(kāi)源社區(qū)在維護(hù)芝硬,采用 GPL 授權(quán)許可。開(kāi)發(fā)這個(gè)分支的原因之一是:甲骨文公司收購(gòu)了 MySQL 后轧房,
有將 MySQL 閉源的潛在風(fēng)險(xiǎn)拌阴,因此社區(qū)采用分支的方式來(lái)避開(kāi)這個(gè)風(fēng)險(xiǎn)。
MariaDB的目的是完全兼容MySQL奶镶,包括API和命令行迟赃,使之能輕松成為MySQL的代替品。
yum install mariadb-server mariadb
mariadb數(shù)據(jù)庫(kù)的相關(guān)命令是:
systemctl start mariadb #啟動(dòng)MariaDB
systemctl stop mariadb #停止MariaDB
systemctl restart mariadb #重啟MariaDB
systemctl enable mariadb #設(shè)置開(kāi)機(jī)啟動(dòng)
驗(yàn)證 MySQL 安裝
在成功安裝 MySQL 后厂镇,一些基礎(chǔ)表會(huì)表初始化纤壁,在服務(wù)器啟動(dòng)后,你可以通過(guò)簡(jiǎn)單的測(cè)試來(lái)驗(yàn)證 MySQL 是否工作正常捺信。
使用 mysqladmin 工具來(lái)獲取服務(wù)器狀態(tài):
使用 mysqladmin 命令來(lái)檢查服務(wù)器的版本, 在 linux 上該二進(jìn)制文件位于 /usr/bin 目錄酌媒,在 Windows 上該二進(jìn)制文件位于C:\mysql\bin 。
[root@host]# mysqladmin --version
linux上該命令將輸出以下結(jié)果迄靠,該結(jié)果基于你的系統(tǒng)信息:
mysqladmin Ver 8.23 Distrib 5.0.9-0, for redhat-linux-gnu on i386
如果以上命令執(zhí)行后未輸出任何信息秒咨,說(shuō)明你的Mysql未安裝成功。
使用 MySQL Client(Mysql客戶端) 執(zhí)行簡(jiǎn)單的SQL命令
你可以在 MySQL Client(Mysql客戶端) 使用 mysql 命令連接到 MySQL 服務(wù)器上掌挚,默認(rèn)情況下 MySQL 服務(wù)器的登錄密碼為空雨席,所以本實(shí)例不需要輸入密碼。
命令如下:
在Linux登錄Mysql主要有:
1. 登錄本地mysql:
mysql -u 用戶名 -p
# 例如
mysql -u root -p #先輸入吠式,回車(chē)
# 也可不用空格
mysql -u用戶名 -p
然后提示輸入密碼陡厘,回車(chē)即可抽米;
2. 登錄遠(yuǎn)程mysql:有主機(jī)名和端口號(hào),有時(shí)也沒(méi)有端口號(hào)
mysql -h 主機(jī) -P 端口 -u 用戶名 -p
#也可不用空格
mysql -h主機(jī) -P端口 -u用戶名 -p
然后提示輸入密碼糙置,回車(chē)云茸。
查看初始化密碼
初始化密碼,保存在日志中谤饭,查看日志即可
cat /var/log/mysqld.log
以上命令執(zhí)行后會(huì)輸出 mysql>提示符查辩,這說(shuō)明你已經(jīng)成功連接到Mysql服務(wù)器上,你可以在 mysql> 提示符執(zhí)行SQL命令:
mysql> SHOW DATABASES;
+----------+
| Database |
+----------+
| mysql |
| test |
+----------+
2 rows in set (0.13 sec)
這一步如報(bào)錯(cuò):ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing this statement.
需要在執(zhí)行此語(yǔ)句之前网持,必須使用ALTER USER語(yǔ)句重置密碼。
alter user 'root'@'localhost' identified by 'root';
開(kāi)啟mysql遠(yuǎn)程服務(wù):
查詢所有用戶及權(quán)限
select host,user from user;
1.修改mysql數(shù)據(jù)庫(kù)下的user表中host的值
use mysql;
update user set host='%' where user='root';
FLUSH PRIVILEGES;
2. 使用授權(quán)的方式
mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'%'WITH GRANT OPTION;
mysql>FLUSH PRIVILEGES;
如果想myuser用戶使用mypassword密碼從任何主機(jī)連接到mysql服務(wù)器的話长踊。
GRANT ALL PRIVILEGES ON *.* TO 'myuser'@'%'IDENTIFIED BY 'mypassword' WITH GRANT OPTION;
如果你想允許用戶myuser從ip為192.168.1.6的主機(jī)連接到mysql服務(wù)器功舀,并使用mypassword作為密碼
GRANT ALL PRIVILEGES ON *.* TO 'myuser'@'192.168.1.3'IDENTIFIED BY 'mypassword' WITH GRANT OPTION;
將mysql 服務(wù)加入開(kāi)機(jī)啟動(dòng)項(xiàng),并啟動(dòng)mysql進(jìn)程
systemctl enable mysqld.service
systemctl start mysqld.service
常用mysql服務(wù)命令:
mysql -u username -p #登錄mysql
quit #退出mysql
systemctl start mysqld.service #啟動(dòng)mysql
systemctl stop mysqld.service #結(jié)束
systemctl restart mysqld.service #重啟
systemctl enable mysqld.service #開(kāi)機(jī)自啟
select version(); #查看mysql版本
在使用 Navicat for Mysql連接mysql 8.0時(shí)會(huì)報(bào)如下錯(cuò)誤:
Authentication plugin 'caching_sha2_password' cannot be loaded:
mysql8.0 引入了新特性 caching_sha2_password身弊;這種密碼加密方式客戶端不支持辟汰;客戶端支持的是mysql_native_password 這種加密方式;
我們可可以查看mysql 數(shù)據(jù)庫(kù)中user表的 plugin字段阱佛;
可以使用命令將他修改成mysql_native_password加密模式:
update user set plugin='mysql_native_password' where user='root';
在防火墻中開(kāi)啟3306端口
firewall-cmd --zone=public --list-ports 查看所有打開(kāi)的端口
firewall-cmd --zone=public --add-port=3306/tcp --permanent 開(kāi)啟一個(gè)端口帖汞,添加--permanent永久生效,沒(méi)有此參數(shù)重啟后失效
firewall-cmd --permanent --add-port=3306/tcp 開(kāi)放端口3306
firewall-cmd --permanent --remove-port=3306/tcp 移除端口3306
firewall-cmd --reload 重啟防火墻凑术,修改后重啟防火墻生效
重啟防火墻
systemctl enable firewalld.service
systemctl start firewalld.service