MySQL是一個關係型數據庫管理系統,由瑞典MySQL AB 公司開發,目前屬於 Oracle 旗下產品。MySQL 是最流行的關係型數據庫管理系統之一,在 WEB 應用方面,MySQL是最好的 RDBMS (Relational Database Management System,關係數據庫管理系統) 應用軟件。html
查詢 CentOS 7 自帶的 Mariadb:node
rpm -qa | grep mariadb
mariadb-libs-5.5.56-2.el7.x86_64mysql
卸載 Mariadb:linux
rpm -e --nodeps mariadb-libs-5.5.56-2.el7.x86_64
查詢是否已安裝 MySQL:web
rpm -qa | grep mysql
若是已安裝低版本的 MySQL:sql
mysql-community-libs-5.7.1-1.el7.x86_64
mysql-community-common-5.7.1-1.el7.x86_64
mysql-community-server-5.7.1-1.el7.x86_64
mysql-community-client-5.7.1-1.el7.x86_64shell
中止 MySQL 服務:數據庫
systemctl stop mysqld.service
關閉 MySQL 服務開機啓動:安全
systemctl disable mysqld.service
卸載低版本的 MySQL:socket
rpm -e --nodeps mysql-community-libs-5.7.1-1.el7.x86_64 rpm -e --nodeps mysql-community-common-5.7.1-1.el7.x86_64 rpm -e --nodeps mysql-community-server-5.7.1-1.el7.x86_64 rpm -e --nodeps mysql-community-client-5.7.1-1.el7.x86_64
前往 MySQL 官網查看最新版本的:
查看:
Red Hat Enterprise Linux 7 / Oracle Linux 7 (Architecture Independent), RPM Package
對應的 rpm 包名:
mysql57-community-release-el7-11.noarch.rpm
和 MD5值:
c070b754ce2de9f714ab4db4736c7e05
則對應的 yum 源下載地址爲:
http://repo.mysql.com/mysql57-community-release-el7-11.noarch.rpm
下載該 yum 源到當前目錄:
wget http://repo.mysql.com/mysql57-community-release-el7-11.noarch.rpm
計算 MD5:
md5sum mysql57-community-release-el7-11.noarch.rpm
c070b754ce2de9f714ab4db4736c7e05 mysql57-community-release-el7-11.noarch.rpm
MD5 值和官方提供的一致,是安全的,添加該源:
yum -y localinstall mysql57-community-release-el7-11.noarch.rpm
查看當前可安裝的 MySQL 軟件包:
yum repolist enabled | grep mysql
mysql-connectors-community/x86_64 MySQL Connectors Community 42
mysql-tools-community/x86_64 MySQL Tools Community 51
mysql57-community/x86_64 MySQL 5.7 Community Server 227
安裝 MySQL 5.7 Community Server:
yum -y install mysql-community-server
查看安裝的 MySQL 版本:
mysqld -V
mysqld Ver 5.7.20 for Linux on x86_64 (MySQL Community Server (GPL))
啓動 MySQL 服務:
systemctl start mysqld.service
設置 MySQL 服務開機啓動:
systemctl enable mysqld.service
查看 MySQL 服務狀態:
systemctl status mysqld.service
● mysqld.service - MySQL Server
Loaded: loaded (/usr/lib/systemd/system/mysqld.service; enabled; vendor preset: disabled)
Active: active (running) since Mon 2017-10-23 20:53:59 CST; 48s ago
Docs: man:mysqld(8)
http://dev.mysql.com/doc/refman/en/using-systemd.html
Main PID: 25918 (mysqld)
CGroup: /system.slice/mysqld.service
└─25918 /usr/sbin/mysqld --daemonize --pid-file=/var/run/mysqld/mysqld.pidOct 23 20:53:52 web systemd[1]: Starting MySQL Server...
Oct 23 20:53:59 web systemd[1]: Started MySQL Server.
中止 MySQL 服務:
systemctl stop mysqld.service
備份 MySQL 主配置文件:
mv /etc/my.cnf /etc/my.cnf.bak
建立並修改新的 MySQL 主配置文件:
vi /etc/my.cnf
插入以下配置:
# mysqld config [mysqld] port=3306 datadir=/var/lib/mysql socket=/var/lib/mysql/mysql.sock symbolic-links=0 log-error=/var/log/mysqld.log pid-file=/var/run/mysqld/mysqld.pid character-set-server=utf8 # mysql config [mysql] socket=/var/lib/mysql/mysql.sock default-character-set=utf8 # client config [client] socket=/var/lib/mysql/mysql.sock default-character-set=utf8
保存退出,啓動 MySQL 服務:
systemctl start mysqld.service
第一次啓動 MySQL 時,會在日誌文件中給 root 用戶隨機生成一個密碼:
grep 'temporary password' /var/log/mysqld.log
2017-10-23T12:53:54.742077Z 1 [Note] A temporary password is generated for root@localhost: 0an6yuMl-(&b
最後面的 0an6yuMl-(&b
就是隨機密碼,使用該隨機密碼登陸 MySQL 控制檯:
mysql -u root -p -h localhost
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 8
Server version: 5.7.20Copyright (c) 2000, 2017, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
爲 root 用戶設置新密碼**( <password>
爲新密碼)**:
ALTER USER 'root'@'localhost' IDENTIFIED BY '<password>';
若是出現:
ERROR 1819 (HY000): Your password does not satisfy the current policy requirements
說明密碼強度不夠,需更換更高強度密碼**(推薦 16 位以上,包含符號,大小寫字母,數字組合)**,成功設置則顯示以下:
Query OK, 0 rows affected (0.00 sec)
使配置即刻生效:
FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.00 sec)
退出 MySQL 控制檯:
EXIT;
中止 MySQL 服務:
systemctl stop mysqld.service
建立目標路徑:
mkdir -p /home/sql
拷貝數據文件及文件權限:
cp -a /var/lib/mysql /home/sql
修改 MySQL 主配置文件:
vi /etc/my.cnf
把到全部的:
datadir=/var/lib/mysql
替換成:
datadir=/home/sql/mysql
把全部的:
socket=/var/lib/mysql/mysql.sock
替換成:
socket=/home/sql/mysql/mysql.sock
保存退出,啓動 MySQL 服務:
systemctl start mysqld.service
查看防火牆服務狀態:
systemctl status mysqld.service
打開、關閉、重啓 MySQL 服務:
# 打開 systemctl start mysqld.service # 關閉 systemctl stop mysqld.service # 重啓 systemctl restart mysqld.service
打開、關閉 MySQL 服務開機啓動:
# 查看 MySQL 服務是否開機啓動 systemctl is-enabled mysqld.service # 打開 MySQL 服務開機啓動 systemctl enable mysqld.service # 關閉 MySQL 服務開機啓動 systemctl disable mysqld.service
用戶登陸:
mysql -u <user> -p -h localhost
用戶登出:
EXIT;
建立用戶:
CREATE USER '<user>'@'<host>' IDENTIFIED BY '<password>';
參數 <host>
可設置爲:
localhost
:用戶只能在本機登陸;%
:通配符,用戶能夠在任意主機登陸;<IP>
:用戶只能從指定 IP 的主機登陸( IP 中能夠使用 % 通配符,好比:192.168.100.%)。修改當前登陸的用戶密碼:
SET PASSWORD = PASSWORD('<password>');
修改指定用戶密碼:
SET PASSWORD FOR '<user>'@'<host>' = PASSWORD('<password>');
刪除用戶:
DROP USER '<user>'@'<host>';
查看數據庫列表:
SHOW DATABASES;
建立數據庫:
CREATE DATABASE <database>;
刪除數據庫:
DROP DATABASE <database>;
受權指定用戶從指定域訪問指定數據庫的指定數據表:
GRANT <privilege> ON <database>.<table> TO '<user>'@'<host>';
參數 <privilege>
可設置爲:
All
:表示全部權限;SELECT / INSERT / UPDATE
等指定權限(多權限用 ,
隔開)。參數 <database>
可用 *
表示全部數據庫。
參數 <table>
可用 *
表示全部表。
撤銷指定用戶從指定域對指定數據的庫指定表的權限:
REVOKE <privilege> ON <database>.<table> FROM '<user>'@'<host>';
使配置即刻生效:
FLUSH PRIVILEGES;
MySQL Workbench provides DBAs and developers an integrated tools environment for:
- Database Design & Modeling
- SQL Development
- Database Administration
- Database Migration
The Community (OSS) Edition is available from this page under the GPL.
Workbench 是 MySQL 官方提供的 MySQL 管理工具,開源免費,支持全平臺。