Ubuntu Server 18.04 與 MySQL 5.7

【walker 過程】

  • 安裝

sudo apt install mysql-server mysql-client
  • 在 /etc/mysql/mysql.conf.d/mysqld.cnf 文件裏面修改或添加

[mysqld]
# 修改綁定ip
bind-address            = 0.0.0.0
# 設置最大內存
innodb_buffer_pool_size = 20G
  • 重啓 mysql 服務

sudo systemctl restart mysql.service
  • 查看是否修改成功(數值的單位是 Bytes)

mysql -u root
mysql> show variables like  'innodb_buffer_pool_size';
+-------------------------+-------------+
| Variable_name           | Value       |
+-------------------------+-------------+
| innodb_buffer_pool_size | 21474836480 |
+-------------------------+-------------+
1 row in set (0.00 sec)
  • 設置遠程 root 訪問

注意:update user set authentication_string=password('xxxx') where user='root'; 語句會與遠程授權衝突。

mysql -u root
mysql> use mysql;
# authentication_string 以前叫 password
mysql> select user, host, authentication_string from user;
# 設置任意 ip 可使用 root 連接
mysql> update user set host='%' where user='root';
# xxxx 爲遠程訪問密碼
mysql> grant all privileges on *.* to 'root'@'%' identified by 'xxxx' with grant option; 
# 刷新權限
mysql> flush privileges;


【修改字符集爲 utf8/utf8mb4】

mysql> show variables like 'character_set_%';
mysql> show variables like 'collation_%';

合二爲一:

SHOW VARIABLES WHERE Variable_name LIKE 'character_set_%' OR Variable_name LIKE 'collation_%';
# OR
SHOW VARIABLES WHERE Variable_name REGEXP '^(character_set_|collation_).*';

aaa.png

  • 在 /etc/mysql/mysql.conf.d/mysqld.cnf 文件裏面修改或添加

[mysqld]
# ...
lc-messages-dir = /usr/share/mysql
character-set-server = utf8mb4
  • 在 /etc/mysql/conf.d/mysql.cnf 文件裏面修改或添加

[client]
default-character-set = utf8mb4

[mysql]
default-character-set = utf8mb4
  • 重啓 mysql 服務

sudo systemctl restart mysql.service
  • 再次查看

mysql -u root -p
SHOW VARIABLES WHERE Variable_name REGEXP '^(character_set_|collation_).*';

bbb.png


【相關命令】

  • 安全檢查

sudo mysql_secure_installation
  • 查看授權

show grants;
  • 密碼策略相關

# 查看密碼策略
mysql> select @@validate_password_policy;

# 修改密碼策略
mysql> set global validate_password_policy=0;

# 查看密碼長度限制
mysql> select @@validate_password_length;
  • 卸載 mysql 及配置文件

sudo apt remove --purge mysql-server mysql-client


【FAQ】

Q:導入數據報錯 lost connection to MySQL server during query 

A:可能原因是 max_allowed_packet 值過小。查詢的方法:SHOW VARIABLES LIKE '%max_allowed_packet%';。可通過修改 /etc/mysql/mysql.conf.d/mysqld.cnf 裏面的  max_allowed_packet 配置項調整。注意這個值並不需要比導入的 sql 文件大。當然也可能是網絡問題(網卡、網線、交換機接口等)。


【相關閱讀】


*** walker ***


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章