1. 程式人生 > >Linux --- CentOS 7 搭建MySQL5.6資料庫伺服器與配置詳解

Linux --- CentOS 7 搭建MySQL5.6資料庫伺服器與配置詳解

Centos7將預設資料庫mysql替換成了Mariadb,如果想繼續使用mysql 需要解除安裝Mariadb 再安裝mysql;

1、解除安裝 MariaDB

  • 檢視已安裝的程式
rpm -qa |grep -i mariadb
  • 解除安裝已安裝的 mariadb
yum remove MariaDB-*

注:可再次上面兩條命令,檢查是否解除安裝乾淨
- 刪除 /etc/my.cnf

rm /etc/my.cnf

2、安裝 MySQL

下載離線安裝包

  • MySQL官網
https://dev.mysql.com/downloads/mysql/5.6
.html
  • 選擇安裝包版本
    由於CentOS 系統 是 Red Hat 的分支發行版,所有選擇Red Hat安裝包就好;
Red Hat Enterprise Linux 7 / Oracle Linux 7 (x86, 64-bit), RPM Bundle
  • 下載後的包為tar包
MySQL-5.6.40-1.el7.x86_64.rpm-bundle.tar

如果是在windows平臺下載的tar包,可通過WinSCP軟體拷貝到CentOS系統下
- 解壓tar安裝包
將下載的壓縮包放到/usr/local/目錄下, 執行解壓縮命令

tar -xvf MySQL-5.6
.40-1.el7.x86_64.rpm-bundle.tar

安裝 MySQL

  • 切換至root許可權
su - root
  • 使用 rpm 安裝
rpm -ivh MySQL-*
  • 安裝完成,啟動MySQL
systemctl start mysql
ps -ef | grep mysql
  • 檢視初始密碼
cat /root/.mysql_secret

A RANDOM PASSWORD HAS BEEN SET FOR THE MySQL root USER !
You will find that password in ‘/root/.mysql_secret’.

You must change that password on your first connect,
no other statement but ‘SET PASSWORD’ will be accepted.
See the manual for the semantics of the ‘password expired’ flag.

Also, the account for the anonymous user has been removed.

In addition, you can run:

/usr/bin/mysql_secure_installation

which will also give you the option of removing the test database.
This is strongly recommended for production servers.

為MySQL的root使用者設定了一個隨機密碼!
可以在“/root/.mysqlsecret”中找到該密碼。

你必須在第一次連線上更改密碼
- 使用隨機密碼登陸後,更改密碼

mysql -uroot -p
SET PASSWORD = PASSWORD('root');
  • 設定開機啟動

1.建立配置檔案

touch /usr/lib/systemd/system/mysql.service

2.編輯 /usr/lib/systemd/system/mysql.service 檔案

vim /usr/lib/systemd/system/mysql.service

3.在mysql.service檔案中新增如下配置:

[Unit]
Description=MySQL Server
Documentation=man:mysqld(8)
Documentation=http://dev.mysql.com/doc/refman/en/using-systemd.html
After=network.target
After=syslog.target
[Install]
WantedBy=multi-user.target
[Service]
User=mysql
Group=mysql
ExecStart=/usr/local/mysql/bin/mysqld --defaults-file=/etc/my.cnf
LimitNOFILE = 5000

ExecStart=/usr/local/mysql/bin/mysqld (此處請對應修改為MySQL程式所在的路徑)
4.設定開機啟動

systemctl enable mysql.service

注:MySQL的預設安裝位置

/var/lib/mysql/               #資料庫目錄
/usr/share/mysql              #配置檔案目錄
/usr/bin                      #相關命令目錄
/etc/init.d/mysql             #啟動指令碼

2、配置 MySQL

MySQL簡單配置

  • 啟動安全配置嚮導
/usr/bin/mysql_secure_installation

配置 MySQL字符集

  • 編輯檔案 /etc/my.cnf
vim /etc/my.cnf
  • 在 my.cnf 檔案中的 [mysqld] 標籤下新增如下內容
[client] 
password        = root
port            = 3306 
default-character-set=utf8 
[mysqld] 
port            = 3306 
character_set_server=utf8 
character_set_client=utf8 
collation-server=utf8_general_ci 
#(注意linux下mysql安裝完後是預設:表名區分大小寫,列名不區分大小寫; 0:區分大小寫,1:不區分大小寫) 
lower_case_table_names=1 
#(設定最大連線數,預設為 151,MySQL伺服器允許的最大連線數16384; ) 
max_connections=1000 
[mysql] 
default-character-set = utf8
  • 配置完成,重啟mysql
systemctl restart mysql
  • 登入 mysql 檢視字符集是否設定成功
show variables like "%character%";
show variables like "%collation%";

此時要想遠端登入資料庫,還需要先設定許可權

3、配置使用者許可權

建立使用者

grant 許可權 on 資料庫.* to 使用者名稱@登入主機 identified by “密碼”;

使用grant 方式建立使用者更完美:

當資料庫存在使用者的時候GRANT會對使用者進行授權,但當資料庫不存在該使用者的時候,就會建立相應的使用者並進行授權。
- 建立本地登入使用者

create user [email protected] identified by 'password';
  • 建立使用者時即賦予許可權(允許遠端訪問)
# 允許使用者名稱為`username`的使用者從任意ip以密碼為password訪問所有資料庫
grant all privileges on *.* to [email protected]'%' identified by 'password';

注意:

  1. [email protected]’%’ ,% 代表允許所有IP的username登入

  2. [email protected],localhost 代表允許本地username登入

  3. [email protected],127.0.0.1 可以設定為單個IP,即允許單個遠端主機登入

  4. all privileges,代表所有許可權

  5. 許可權列表可被替換為一下任意組合:

    select,insert,update,delete,create,drop,

    index,alter,grant,references,reload,shutdown,process,file

查詢所有使用者許可權列表
select Host,User from mysql.user;
查詢user使用者的許可權
show grants for user;
單獨授權user使用者(查增改刪)許可權
GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DROP,ALTER ON 資料庫.* TO user@'%' IDENTIFIED BY '密碼';
授權user使用者憑密碼本地訪問所有資料庫
grant all privileges on *.* to user@localhost identified by '密碼';
授權user使用者憑密碼遠端訪問指定資料庫
grant all privileges on 資料庫.* to user@'%' identified by '密碼';
授權user使用者憑密碼遠端訪問所有資料庫
grant all privileges on *.* to user@'%' identified by '密碼';

查詢使用者許可權列表

  • 切換至 mysql 資料庫
use mysql
  • 查詢許可權列表
SELECT User, Host, password FROM user;
  • 查詢user使用者的許可權
show grants for user;

4、問題集錦

(一) 忘記密碼 ?

  1. 停止 mysql 服務
systemctl stop mysql
  1. 以不檢查許可權的方式重新啟動 mysql
mysqld_safe --skip-grant-tables &
  1. 修改 mysql密碼
mysql -u root
update mysql.user set password=PASSWORD('newpassword') where User='root’;
flush privileges;
  1. 重新啟動 mysql
systemctl start mysql

總結

參考

相關推薦

Linux --- CentOS 7 搭建MySQL5.6資料庫伺服器配置

Centos7將預設資料庫mysql替換成了Mariadb,如果想繼續使用mysql 需要解除安裝Mariadb 再安裝mysql; 1、解除安裝 MariaDB 檢視已安裝的程式 rpm -qa |grep -i mariadb 解除

win7-MySQL資料庫安裝配置

目錄 一、概述 一、概述   MySQL版本:5.7.17   客戶端工具:NavicatforMySQL  二、MySQL安裝  安裝條件:   如果Windows Server 2003 在安裝.net framework4.0安裝過程中報錯: net framework 4.0安裝時提

Centos 環境下,有關Nginx安裝配置

Linux中Nginx安裝與配置詳解(CentOS-6.5:nginx-1.5.0)。 1 Nginx簡介 Nginx ("engine x") 是一個高效能的 HTTP 和 反向代理 伺服器,也是一個 IMAP/POP3/SMTP 代理伺服器。 Nginx 是由 Ig

win10MySQL資料庫安裝配置

一、概述   MySQL版本:5.6.21   客戶端工具:NavicatforMySQL  二、MySQL安裝  安裝條件:   如果Windows Server 2003 在安裝.net framework4.0安裝過程中報錯: net framework 4

Linux/CentOS 7 搭建ftp伺服器簡易版

yum install -y vsftpd //安裝vsftpdvsftpd -v //檢查安裝vi /etc/vsftpd/vsftpd.conf//編輯配置檔案anonymous_enable=NO//禁止匿名登陸chroot_local_user=YES//限制在使用者

Linux --- CentOS 7 搭建FTP伺服器

FTP 是 File Transfer Protocol(檔案傳輸協議)的英文簡稱,而中文簡稱為“文傳協議”。用於Internet上的控制檔案的雙向傳輸。同時,它也是一個應用程式(Application)。基於不同的作業系統有不同的FTP應用程式,而所有這些應用

MySQL5.6 (5.7)資料庫主從(Master/Slave)同步安裝配置

安裝環境 作業系統 :CentOS 6.5 資料庫版本:MySQL 5.6.27 主機A:192.168.1.1 (Master) 主機B:192.168.1.2 (Slave) 這裡強調的資料庫的版本,是因為MySQL在5.6之前和之後的安裝方式是不一樣的。 本人

centos 7搭建簡單的vpn伺服器

步驟1:安裝所需軟體包 [[email protected] ~]# yum install ppp 下載版本適合的pptd包pptpd-1.4.0-2.el7.x86_64.rpm [[email protected] 桌面]# rpm

Linux / CentOs 7搭建DHCP服務

ffffff ade 第一個 獲取 編輯 etc col tracert netmask 在前面介紹了怎麽在Windows server 2016中搭建DHCP服務, 我們今天介紹如何在Linux / CentOS 7操作系統中搭建DHCP服務?跟在Windows serv

CentOS 6.x上搭建vSFTPD服務器搭建配置

服務器 故障排查 運維 vsftpd 摘要: 手把手教你搭建vsftpd服務器,實現了基於db文件和MySQL數據庫文件進行虛擬用戶認證,當然了也本文章也包含搭建過程中問題的排查啦,哈哈哈。 另外,我在CentOS 7.x上也進行了搭建測試,步驟一致,個別命令會有不

MySQL5.6 資料庫主從(Master/Slave)同步安裝配置

安裝環境 作業系統 :CentOS 6.5 資料庫版本:MySQL 5.6.27 主機A:192.168.1.1 (Master) 主機B:192.168.1.2 (Slave) 這裡強調的資料庫的版本,是因為MySQL在5.6之前和之後的安裝方式是不

Linux中Nginx安裝配置(CentOS-6.5:nginx-1.5.0)

1 Nginx簡介Nginx ("engine x") 是一個高效能的 HTTP 和 反向代理 伺服器,也是一個 IMAP/POP3/SMTP 代理伺服器。 Nginx 是由 Igor Sysoev 為俄羅斯訪問量第二的 Rambler.ru 站點開發的,第一個公開版本0

MySQL5.6 數據庫主從(Master/Slave)同步安裝配置

inux bind 主從配置 希望 master 強調 數據庫主從 ria 配置文件 目錄(?)[+] 安裝環境 操作系統 :CentOS 6.5 數據庫版本:MySQL 5.6.27 主機A:192.168.1.1 (Master) 主機B:192.168.

CentOS 7下Samba服務安裝配置

chown grep -E add -s login mkdir entos passwd 密碼 centos7.5系統下進行 yum -y install samba samba-client systemctl start smb nmbps -ef | grep -E

MySQL-5.6資料庫安裝配置

目錄 一、概述 一、概述   MySQL版本:5.7.17   客戶端工具:NavicatforMySQL  二、MySQL安裝  安裝條件:   如果Windows Server 2003 在安裝.net framewo

CentOS 6.4 中iptables 配置

iptables 指令詳解 語法: iptables [-t table] command [match] [-j target/jump] -t 引數用來指定規則表,內建的規則表有三個,分別是:nat、mangle 和 filter,當未指定規

CentOS 7系統中JDK的安裝配置

作業系統版本:CentOS Linux release 7.2.1511 (Core) JDK版本:jdk-8u111-nb-8_2-linux-x64.sh 安裝方式:Shell指令碼安裝 下載地址

web緩存服務器varnish-4.1.6的部署及配置

是否 次數 tool 至少 hits 檢查 rep nat list web緩存服務器varnish-4.1.6的部署及配置詳解 1.安裝varnish4.1.6安裝依賴 yum install -y autoconf automake jemalloc-devel li

Tomcat學習總結(6)——Tomca常用配置

mar evel 代碼段 between 取消 新建 unp -h tom 註:Tomcat 8需要JRE7以上的JRE 1. Tomcat環境變量設置 1.1 Java環境變量設置 右鍵計算機—屬性—高級系統設置—環境變量,在”系統環境變量”,設置如下三個變量(如果變量已

Linux中Nginx安裝配置

cpan .net 語言 roo disable 方便 sbin wget 一個 安裝所需環境 Nginx 是 C語言 開發,建議在 Linux 上運行,當然,也可以安裝 Windows 版本,本篇則使用 CentOS 7 作為安裝環境。 上網配置: 如果安裝了cen