mysql 5.7.15 杂记

来源:互联网 发布:用c语言编写猜数游戏 编辑:程序博客网 时间:2024/05/12 06:41
my.cnf

[client]
port            = xxx
socket          = /tmp/mysql.sock
default-character-set = utf8


[mysqld]
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES //STRICT_TRANS_TABLES模式:严格模式,进行数据的严格校验,错误数据不能插入,报error错误;NO_ENGINE_SUBSTITUTION:如果需要的存储引擎被禁用或未编译,可以防止自动替换存储引擎


basedir = /usr/local/mysql
datadir = /usr/local/mysql/data
port            = 6665
socket          = /tmp/mysql.sock

skip-external-locking //当外部锁定(external-locking)起作用时,每个进程若要访问数据表,则必须等待之前的进程完成操作并解除锁定。由于服务器访问数据表时经常需要等待解锁,因此在单服务器环境下external locking会让MySQL性能下降。


key_buffer_size = 512M //key_buffer设置为物理内存的1/4(针对MyISAM引擎),甚至是物理内存的30%~40%,如果key_buffer_size设置太大,系统就会频繁的换页,降低系统性能。因为MySQL使用操作系统的缓存来缓存数据,所以我们得为系统留够足够的内存;在很多情况下数据要比索引大得多


max_allowed_packet = 1M //mysql根据配置文件会限制server接受的数据包大小。有时候大的插入和更新会被max_allowed_packet 参数限制掉,导致失败。


table_open_cache = 512  //table_cache 参数设置表高速缓存的数目。每个连接进来,都会至少打开一个表缓存。因此, table_cache 的大小应与 max_connections 的设置有关。例如,对于 200 个并行运行的连接,应该让表的缓存至少有 200 × N ,这里 N 是应用可以执行的查询的一个联接中表的最大数量。此外,还需要为临时表和文件保留一些额外的文件描述符。


sort_buffer_size = 2M  
read_buffer_size = 2M
net_buffer_length = 8K //数据备份及恢复影响
query_cache_size= 32M 
myisam_sort_buffer_size = 64M


thread_cache_size = 8 //每建立一个连接,都需要一个线程来与之匹配,此参数用来缓存空闲的线程,以至不被销毁,如果线程缓存中有空闲线程,这时候如果建立新连接,MYSQL就会很快的响应连接请求。


character-set-server = utf8
slow_query_log=on
long_query_time = 1
slow-query-log-file       = /usr/local/mysql/data/slow.log
interactive_timeout=1800 //等待一个活动连接关闭连接前等待的秒数
wait_timeout=1800 //等待一个非活动连接关闭连接前等待的秒数
max_connections=2000 
max_connect_errors=1000 
tmp_table_size=204230400
innodb_file_per_table=1 //独立表空间,没设为共享表空间

innodb_buffer_pool_size = 2048M //缓冲池字节大小,InnoDB缓存表和索引数据的内存区域。默认的值是128M
innodb_log_file_size = 256M 
innodb_log_buffer_size = 16M

innodb_flush_log_at_trx_commit = 2 //0,log buffer将每秒一次地写入log file中,并且log file的flush(刷到磁盘)操作同时进行.该模式下,在事务提交的时候,不会主动触发写入磁盘的操作;1,每次事务提交时MySQL都会把log buffer的数据写入log file,并且flush(刷到磁盘)中去;2,每次事务提交时MySQL都会把log buffer的数据写入log file.但是flush(刷到磁盘)操作并不会同时进行。该模式下,MySQL会每秒执行一次 flush(刷到磁盘)操作。


innodb_thread_concurrency = 500 //限制并发线程的数量,一旦执行线程的数量达到这个限制,额外的线程在被放置到对队列中之前,会睡眠数微秒,可以通过设定参数

innodb_thread_sleep_delay来配置睡眠时间。


[mysqldump]
quick
max_allowed_packet = 16M

[mysql]
no-auto-rehash
default-character-set=utf8

[isamchk]
key_buffer = 20M
sort_buffer_size = 20M
read_buffer = 2M
write_buffer = 2M

[myisamchk]
key_buffer = 20M
sort_buffer_size = 20M
read_buffer = 2M
write_buffer = 2M

[mysqlhotcopy]
interactive-timeout

[mysqld_safe]

open-files-limit=90000


开启命令:

方法一:

/usr/local/mysql/bin/mysqld --initialize --datadir=/usr/local/mysql/data/ --basedir=/usr/local/mysql --user=mysql
/usr/local/mysql/bin/mysqld_safe --user=mysql &

方法二:

cp ./mysql.server /etc/init.d/
chkconfig --add mysql.server 
/etc/init.d/mysql.server 



0 0