相信很多小夥伴都體驗過初學linux時安裝mysql的痛苦,這裏我總結了一下在centos7上安裝mysql5.7的步驟(我是裝在了阿里雲服務器上),如果你覺得本文對你有所幫助,麻煩點贊收藏支持下啦
mysql5.7安裝包(linux版):
鏈接:https://pan.baidu.com/s/1t2eILoJOP1zufHL83xTDFA
提取碼:en1i
1、安裝前的準備工作
1.1 執行安裝命令前,檢查並刪除默認安裝的mysql-libs/MariaDB
- CentOS6
#查詢是否默認安裝了mysql-libs
rpm -qa|grep mysql
#如果存在mysql-libs的舊版本包如下:請先執行卸載命令
rpm -e --nodeps mysql-libs
- CentOS7
#查詢是否默認安裝了mariadb
rpm -qa|grep mariadb
#如果存在如下,請先執行卸載命令:mariadb-libs-5.5.52-1.el7.x86_64(輸入你們對應查出來的版本)
rpm -e --nodeps mariadb-libs-5.5.52-1.el7.x86_64
1.2 檢查並安裝以下兩項依賴,
# 檢查
rpm -qa|grep libaio
rpm -qa|grep net-tools
# 安裝
yum install libaio -y
yum install net-tools -y
1.3 檢查並賦予 tmp 目錄權限
由於mysql安裝過程中,會通過mysql用戶在/tmp目錄下新建tmp_db文件,所以給/tmp
較大的權限
執行 :
chmod -R 777 /tmp
2、正式安裝
上傳以下文件分別執行安裝
在mysql的安裝文件目錄下執行:(必須按照順序執行)
rpm -ivh mysql-community-common-5.7.16-1.el7.x86_64.rpm
rpm -ivh mysql-community-libs-5.7.16-1.el7.x86_64.rpm
rpm -ivh mysql-community-client-5.7.16-1.el7.x86_64.rpm
rpm -ivh mysql-community-server-5.7.16-1.el7.x86_64.rpm
如果在安裝mysql-community-server前沒有事先安裝好前三個依賴環境會報錯
3、查看MySQL版本號
執行mysqladmin --version
命令,類似java -version
打出消息,即爲成功。
4、mysql服務的初始化
如果你是以 root 身份運行 mysql 服務,需要執行下面的命令初始化
mysqld --initialize --user=mysql
--initialize
選項默認以“安全”模式來初始化,會爲 root 用戶生成一個臨時密碼,登陸後你需要設置一個新密碼
查看生成的臨時密碼:
cat /var/log/mysqld.log
把密碼粘貼複製保存一下,下面登錄修改密碼會用到
5、MySQL服務啓動/關閉/狀態命令
# 啓動:
systemctl start mysqld
# 狀態:
systemctl status mysqld
# 關閉:
systemctl stop mysqld
啓動mysql
6、root首次登錄/修改密碼
首次登錄:
輸入 mysql -uroot -p
命令進行登錄
首次登陸通過需要錄入初始化密碼:
在Enter password 輸入剛纔保存的臨時密碼
修改密碼:
上面登錄進mysql後,輸入命令修改密碼
ALTER USER 'root'@'localhost' IDENTIFIED BY '新密碼';
設置完密碼就可以用新密碼登陸,正常使用數據庫了
7、退出登錄驗證
在mysql窗口輸入quit
退出登錄
8、mysql自啓動
查看mysql是否自啓動(默認自啓動)
systemctl list-unit-files|grep mysqld.service
如不是enabled可以運行如下命令設置自啓動
systemctl enable mysqld.sercice
9、修改數據庫/表的字符集
爲什麼要修改字符集?
通過下面案例說明
創建測試數據庫:
create database mydb01;
切換到該數據庫:
use mydb
創建測試表:
create table mytbl(id int,name varchar(20));
測試插入中文數據:
insert into mytbl values(1,‘張三’);
會發現插入報錯,原因是 mysql默認使用的字符集是Latin1,不支持中文字符,因此我們要把他修改成utf-8
修改步驟:
步驟一:
修改配置文件 vim /etc/my.cnf
在最後加上中文字符集配置
character_set_server=utf8
步驟二:
重新啓動mysql systemctl restart mysqld
並查看狀態systemctl status mysqld
已生成的庫表字符集變更:
上面修改了字符集後,再次往mytbl表執行insert語句的時候依然報錯,這是爲什麼呢?
我們使用命令查看上面在字符集更改前創建的庫表的字符集詳情
show create database mydb; #查看數據庫字符集詳情
show create table mytbl; #查看錶字符集詳情
原來是修改全局的對已生成的庫表字符集不會產生改變,下面我們對已生成的庫表字符集進行變更
- 修改指定數據庫的字符集
alter database mydb character set 'utf8';
-
修改指定數據表的字符集
alter table mytbl convert to character set 'utf8';
如果數據庫已經存儲亂碼數據:更新數據或者刪除數據
10、使用navicat連接mysql
出現問題:
問題原因:
連接用戶名的訪問權限不足
解決辦法:授予權限
登錄mysql,授予通過網絡方式登錄的root用戶對所有庫所有表的全部權限
grant all privileges on *.* to root@'%' identified by '密碼';
最後需要刷新權限才能生效
flush privileges;
11、開放端口/關閉防火牆
開放端口:
如果是在騰訊雲或阿里雲服務器上安裝的mysql,需要配置安全組,放行端口(以阿里云爲例)
關閉防火牆:
輸入命令永久關閉防火牆
systemctl disable firewalld.service
12、mysql安裝相關文件位置
參數 | 路徑 | 解釋 | 備註 |
---|---|---|---|
–basedir | /usr/bin | 相關命令目錄 | mysqladmin mysqldump等命令 |
–datadir | /var/lib/mysql/ | mysql數據庫文件的存放路徑 | |
–plugin-dir | /usr/lib64/mysql/plugin | mysql插件存放路徑 | |
–log-error | /var/lib/mysql/jack.atguigu.err | mysql錯誤日誌路徑 | |
–pid-file/ | var/run/mysqld/mysqld.pid | 進程pid文件 | |
–socket | /var/lib/mysql/mysql.sock | 本地連接時用的unix套接字文件 | |
/usr/share/mysql | 配置文件目錄 | mysql腳本及配置文件 | |
/etc/systemd/system/multi-user.target.wants/mysqld.service | 服務啓停相關腳本 |