MySql5.7基礎配置
MySql5.7基礎配置
[client]
#設置mysql客戶端的字符集
default-character-set=utf8
[mysqld]
#設置mysql端口為3306
port = 3306
#設置mysql服務器的字符集
character-set-server=utf8
#設置存儲引擎
default-storage-engine=INNODB
#開啟MySQL log-bin日志
log-bin=mysql-bin
#binlog日志的格式,分別有STATEMENT、ROW、MIXED三種,影響主從復制
binlog-format=Row
#開啟binlog的數據庫
binlog-do-db=auth
#開啟多個數據庫的時候寫多個
binlog-do-db=districter
#不開啟binlog的數據庫
binlog-ignore-db=mysql
#表名是否區別大小寫
#0磁盤和查詢全部區分
#1磁盤是小寫,查詢不區分大小寫
#2磁盤區分大小寫,查詢是小寫
lower_case_table_names=1
#開啟慢sql日
slow_query_log=TRUE
#設置最大連接數
max_connections=500
#NO_ENGINE_SUBSTITUTION:如果需要的存儲引擎被禁用或未編譯,那么拋出錯誤。不設置此值時,用默認的存儲引擎替代,并拋出一個異常
#STRICT_TRANS_TABLES:嚴格模式,出錯時放棄語句放棄事務
#TRADITIONAL模式:嚴格模式,出錯時執行語句放棄事務
#ANSI模式:寬松模式,更改數據執行語句,使其能盡量保存成功,會自動變更數據模式,報錯不會回滾
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
#跳過表授權,可以無密碼進入MySQL修改root用戶密碼,但是不能進行授權操作
#skip-grant-table
[mysqld_safe]
#日志路徑
log-error=/var/log/mysql/mysqld.log
[mysql]
#設置字符集
default-character-set=utf8
配置路徑和常用文件保存位置
默認配置文件路徑: 配置文件:/etc/my.cnf 日志文件:/var/log//var/log/mysqld.log 服務啟動腳本:/usr/lib/systemd/system/mysqld.service socket文件:/var/run/mysqld/mysqld.pid
常見問題
-
啟動出現MySQL-bin.xxx等文字字樣的報錯
如果你不小心刪除了mysql-bin.0000等文件。 mysql 可能會啟動不起來。因為,mysql會根據index文件去找最新的日至。
這時候會報錯誤如 某個mysql-bin.0000 文件找不到。 你需要清空 mysql-bin.index這個文件。然后再啟動。
-
安裝完無法登陸,報密碼錯誤
在安裝MySQL5.7的時候,會初始化隨即密碼,如果不手動選擇生成模式,會在安裝過程中,把密碼輸出到控制臺顯示,非常復雜的一個字符串,需要仔細找.如果在初始化的時候使用參數配置可以設置空密碼,登錄之后可以自行修改.
mysqld --initialize-insecure --user=mysql ##生成空密碼的初始化命令
-
timestamp類型的列,自動更新了
explicit_defaults_for_timestamp會控制timestamp類型自己更新,需要在創建表的時候,把timestamp類型默認值設置為null
如果已經創建完成,需要修改表結構,設置列的默認值為null
alter table tablename modify column col_timestamp timestamp null default null; -
忘記root密碼
在my.cnf文件中的[mysqld]下添加一句繞過授權的配置,可以無密碼登錄,修改完root用戶密碼之后再把配置去掉,使用root登錄之后就可以正常操作系統了.
-
遠程不能連接MySQL
1.開啟遠程訪問的權限
grant all privileges on *.* to 'username'@'%' identified by 'password' with grant option;第一個 *.*表示所有的權限都可以遠程使用 , %表示連接的IP地址 .
2.服務器防火墻端口開啟,默認是3306
firewall-cmd --zone=public --add-port=3306/tcp --permanent
firewall-cmd --zone=public --add-port=3306/udp --permanent
MySQL 優化記錄:
- where條件可以加索引的必須加上索引
- 使用desc來查看有哪些聯查沒有使用到索引
- 索引字段的類型和長度在 聯查的表中必須一致(大坑,很多時候注意不到)
- 可以把比較固定的聯查表 , 單獨拿出來查詢完之后再進行其他表的聯查
- 把字段長度盡可能的縮短 , 避免不必要的空間浪費
- 盡量使用定長字段
- 索引的先后順序 , 盡可能的調整到都可以使用上的狀態(where 和 聯查 的字段 都按索引的順序書寫)

浙公網安備 33010602011771號