自從mysql被oracle公司收購后 centos等默認不能直接通過 yum install mysql
. 不過mysql 提供了社區版 這個是開源的。各大雲服務廠商也通過此版本提供高性能的雲數據庫。
1. 配置YUM源
在MySQL官網中下載YUM源rpm安裝包:[http://dev.mysql.com/downloads/repo/yum/]
下載mysql源安裝包
wget http://dev.mysql.com/get/mysql57-community-release-el7-8.noarch.rpm
安裝mysql源
yum localinstall mysql57-community-release-el7-8.noarch.rpm
檢查mysql源是否安裝成功
yum repolist enabled | grep "mysql.*-community.*"
如果有消息列出
可以修改vim /etc/yum.repos.d/mysql-community.repo源,改變默認安裝的mysql版本。比如要安裝5.6版本,將5.7源的enabled=1改成enabled=0。然后再將5.6源的enabled=0改成enabled=1即可。
2. 安裝mysql公版
yum install mysql-community-server
-- yum安裝
mysqld --version
--檢查安裝
通過yum形式安裝時 mysql會有個日記文件 記錄操作時候的輸出信息 比如 在第一次安裝時候會給root用戶默認生成個符合標准的密碼
可以在 /var/log/mysqld.log 查看 。這個日記很強大 如果后面你無法啟動mysql 或者忘記密碼 msql出錯都可以優先來這里看看為什么
3. 配置自定義的數據庫目錄 (如果想默認就跳過)
通過yum形式安裝時 mysql 默認安裝 var目錄下 以后想擴充容量可能不方便。可以自己建議數據庫目錄
比如 我想定義 /data/mysql 是數據庫存在的地方
mkdir /data/mysql_mine
-- 建立base目錄
mkdir /data/mysql_mine/data
-- 建立數據目錄
chown -R mysql:mysql /data/mysql
--文件夾屬於mysql用戶 yum已經幫你添加了
mysql5.7和之前版本不同,很多資料上都是這個命令:mysql_install_db --參數
當然也可以用 但現在 mysql推薦使用
mysqld --initialize --參數
命令 其實也是套了個殼
mysqld --initialize --user=mysql --basedir=/data/mysql_mine --datadir==/data/mysql_mine/data
--user 啟動mysql的用戶
--basedir mysql安裝目錄
--datadir mysql數據倉庫目錄
可能會再次初始化此 因為第一次是yum幫你初始化的 。第二此是手動 獲得的信息可以在logs查看 主要是那個密碼 不去記也沒事 可以強制修改自己要的
vim /etc/my.cnf
-- 修改mysql配置
# For advice on how to change settings please see
# http://dev.mysql.com/doc/refman/5.7/en/server-configuration-defaults.html
[mysql]
default-character-set=utf8
[mysqld]
#設置utf8編碼
character-set-server = utf8
collation-server = utf8_general_ci
skip-character-set-client-handshake
#MYSQL設置不區分大小寫
lower_case_table_names=1
#
# Remove leading # and set to the amount of RAM for the most important data
# cache in MySQL. Start at 70% of total RAM for dedicated server, else 10%.
# innodb_buffer_pool_size = 128M
#
# Remove leading # to turn on a very important data integrity option: logging
# changes to the binary log between backups.
# log_bin
#
# Remove leading # to set options mainly useful for reporting servers.
# The server defaults are faster for transactions and fast SELECTs.
# Adjust sizes as needed, experiment to find the optimal values.
# join_buffer_size = 128M
# sort_buffer_size = 2M
# read_rnd_buffer_size = 2M
#設置數據目錄 連接的socket
datadir=/data/mysql_mine/data
socket=/data/mysql_mine/mysql.sock
#skip-grant-tables
validate_password_length=6
validate_password_policy=0
# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0
log-error=/data/mysql_mine/logs/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
[mysql]
socket=/data/mysql_mine/mysql.sock
大致說下 [mysqld]下的是mysqld的配置 [mysql]是mysql的 因為是yum安裝的一些bin share 文件還是老地方引用 。沒有目錄就自己mkdir 記得權限給mysql 。如果想統一指定 可能會導致啟動失敗 可以看log找百度解決 自行傳送門
如果你不知道你的root的密碼是什么 請打開 skip-grant-tables的注釋,跳過密碼驗證 免密碼登錄。
3. 開啟mysql
systemctl start mysqld
systemctl status mysqld
--檢查狀態 出錯請看日記
mysql -uroot -p
或者 mysql
免密碼
第一次登陸 可能遇到 You must reset your password using ALTER USER statement before executing this statement. 的錯誤 意思是讓你修改次密碼
alter user user() identified by "123456";
-- 修改root為123456
show Database
--顯示所有數據庫
4. 修改賬戶信息(如果想默認就跳過)
update user set authentication_string=password('123456') where user='root' and host='localhost';
--設置localhost的root密碼為123456
**特別提醒注意的一點是,新版的mysql數據庫下的user表中已經沒有Password字段了而是將加密后的用戶密碼存儲於authentication_string字段 **
flush privileges;
--刷新特權
SELECT HOST,USER,authentication_string FROM USER;
-- 查詢當前有哪些賬戶
開通對外賬號 方便sql可視化工具遠程登錄
GRANT ALL ON *.* TO admin@'%' identified by '123456' WITH GRANT OPTION;
-- 授權給admin賬戶所有權限也附上授權其他賬戶功能
admin賬戶會自動創建 。當然你也可以給root用戶這么做。
%代表任意ip WITH GRANT OPTION 代表授權功能
FLUSH PRIVILEGES;
-- 刷新特權
SELECT HOST,USER,authentication_string FROM USER;
-- 再次查詢
發現你剛新加的賬戶說明成功! 如果有失敗請參考 傳送門
如果增加密碼強度規則
show variables like 'validate_password%';
-- 檢查密碼驗證配置
如果有列表說明你安裝了 沒的話也沒事 安裝 驗證密碼 插件
install plugin validate_password soname 'validate_password.so';
--安裝插件
show variables like 'validate_password%';
-- 檢查密碼驗證配置
+--------------------------------------+--------+
| Variable_name | Value |
+--------------------------------------+--------+
| validate_password_dictionary_file | |
| validate_password_length | 8 |
| validate_password_mixed_case_count | 1 |
| validate_password_number_count | 1 |
| validate_password_policy | MEDIUM |
| validate_password_special_char_count | 1 |
+--------------------------------------+--------+
6 rows in set (0.00 sec)
有以上信息說明可以配置 也可以通過 SHOW PLUGINS
查看是否安裝
變量 | 說明 |
---|---|
validate_password_dictionary_file | 密碼字典文件,一個密碼一行,不區別大小寫。在其中的密碼被拒絕。 |
validate_password_length | 密碼長度 |
validate_password_policy | 密碼策略:0 or LOW(只驗證長度),MEDIUM (除字典都要 這是默認),STRONG (字典也要) |
validate_password_number_count | 數字的個數 |
validate_password_mixed_case_count | 是否大小寫混合 |
validate_password_special_char_count | 特殊字符的個數 |
我在上述的my.cnf中使用簡單配置 12346就可以通過 方便開發 實際當中按需定義 。
exit
--退出
接下來你可以使用你本地root或者遠程admin賬戶操作數據庫 注意開通防火牆3306
5. 開機自動啟動
systemctl enable mysqld
systemctl daemon-reload
結論 自行安裝會碰很多坑 特別5.7比5.6 yum安裝確實幫我們省事了不少 比如systemctl 命令可以多加利用 在基礎上修改
啟動不了就多看日記 多百度查 順便介紹下 mysql可視化工具 win的SQLyog mac的sequel 。