一部分参数配置
vim /etc/my.cnf
[client]
port=3306
socket=/var/lib/mysql/mysql.sock
default-character-set=utf8mb4
[mysql]
default-character-set=utf8mb4
prompt="\u@mysqldb \R:\m:\s [\d]>"
no-auto-rehash
[mysqld]
use=mysql
port=3306
socket=/var/lib/mysql/mysql.sock
pid-file=/var/lib/mysql/mysql.pid
datadir=/var/lib/mysql
character-set-server=utf8mb4
collation-server=utf8mb4_general_ci
init_connect='SET NAMES utf8mb4'
lower_case_table_names=1
open_files_limit=65535
max_connections=2000
max_connect_errors=100000
back_log=1024
default_storage_engine=InnoDB
skip-name-resolve
table_open_cache=1024
read_buffer_size=16M
read_rnd_buffer_size=8M
sort_buffer_size=8M
sql_mode = NO_ENGINE_SUBSTITUTION,NO_AUTO_CREATE_USER
skip-slave-start
slave_net_timeout=30
innodb_page_size=8k
innodb_buffer_pool_size=2G
innodb_file_per_table=1
general_log=1
general_log_file=/var/log/mysql/general.log
slow_query_log=1
long_query_time=5
slow_query_log_file=/var/log/mysql/slow.log
log_output=FILE
log_error=/var/log/mysql/error.log
log_queries_not_using_indexes=1
log_slow_admin_statements=1
expire_logs_days=15
max_binlog_size=1G
sql模式
mysql数据库中的sql_mode模式
ONLY_FULL_GROUP_BY # 对于GROUP BY聚合操作,如果在SELECT中的列,没有在GROUP BY中出现,那么将认为这个SQL是不合法的,因为列不在GROUP BY从句中
STRICT_TRANS_TABLES # 在该模式下,如果一个值不能插入到一个事务表中,则中断当前的操作,对非事务表不做任何限制
NO_ZERO_IN_DATE # 在严格模式,不接受月或日部分为0的日期
NO_ZERO_DATE # 在严格模式,不要将0000-00-00做为合法日期
ERROR_FOR_DIVISION_BY_ZERO
NO_AUTO_CREATE_USER # 防止grant自动创建新用户,除非还指定了密码
NO_ENGINE_SUBSTITUTION # 如果需要的存储引擎被禁用或未编译,那么就抛出错误,不设置此值时,用默认的存储引擎替代
查看sql_mode
mysql> select @@sql_mode;
mysql> select @@session.sql_mode;
mysql> show variables like 'sql_mode';
mysql> select @@global.sql_mode;