MySQL my.cnf配置详解

模板配置文件路径

/usr/share/mysql

 

[root@localhost mysql]# vim /etc/my.cnf

 

[mysqld]

datadir=/var/lib/mysql

socket=/var/lib/mysql/mysql.sock

# Default to using old password format for compatibility with mysql 3.x

# clients (those using the mysqlclient10 compatibility package).

old_passwords=1

performanc_schema  //开启PERFORMANCE_SCHEMA引擎,5.5版本后加入的主要用于收集数据库服务器性能参数,MySQL用户是不能创建存储引擎为PERFORMANCE_SCHEMA的表

 

#default-character-set=utf8  //修改MySQL字符集,5.1中以后的版本不再使用

character_set_server=utf8    //mysql5.5当创建一个新的数据库时除非明确指定这个数据库的字符集被缺省设定为character-set-server

init_connect='SET NAMES utf8

'

default-storage-engine=INNODB/MyISAM    //修改存储引擎 

 

innodb_log_file_size=40M                   //调整日志文件大小

innodb_log_buffer_size=10M                //调整日志缓冲区大小

innodb_log_files_in_group=2              //调整日志文件数量

innodb_log_group_home_dir          //调整日志文件位于目录

innodb_buffer_pool_size=20M            //调整缓冲池大小

 

#通用访问日志

general_log=ON

general_log_file=/path/to/file

mysql3307>setglobal general_log=ON

 

#慢查询日志:

slow_query_log=ON|OFF

slow_query_log_file=/path/to/file

long_query_time=0.2

log_queries_not_using_indexes=NO|OFF

 

#二进制日志

log-bin  [=/path/to/file]                 //二进制日志

|log_bin                         | ON                         |#是否记录binlog二进制日志

|sql_log_bin                     | ON                         |#临时不记录binlog日志

       我们希望将Master数据库库的一个数据表修改为压缩的InnoDB存储引擎,但Slave数据库保持MyISAM不变,我们就可以这样操作:

       master mysql>set sql_log_bin=0;

       master mysql>alter table example_tableengine=innodb row_format=compressed;

 

 

 

skip-name-resolve  //skip-name-resolve是禁用dns解析所以在mysql的授权表中就不能使用主机名了只能使用IP

 

#主从复制配置

skip-slave-start  #防止复制随着mysql启动而自动启动。即slave端的mysql服务重启后需手动来启动主从复制(slavestart),最好加上,slave端数据库服务重启后手动启动slave比较安全

binlog-ignore-db=information_schema

binlog-ignore-db=performance_schema

binlog-ignore-db=mysql

 

 

#log all begin#########################

log[=/path/to/file]                  //通用(全面)查询日志 5.6之后废弃这个参数改用general_log

log-slow-queries[=/path/to/file]     //慢查询日志

long_query_time=2              //2表示查询超过两秒才记录到慢查询日志中.

log-queries-not-using-indexes        //如果运行的SQL语句没有使用索引mysql数据库同样会将这条SQL语句记录到慢查询日志文件中

##log all end#####################################################

 

 

[client]

default-character-set=utf8         //修改MySQL client字符集mysql 5.1,5.5,5.6中生效

character-set-client=utf8       //客户端的字符集。客户端默认字符集。当客户端向服务器发送请求时,请求以该字符集进行编码。

character-set-results       //结果字符集。服务器向客户端返回结果或者信息时,结果以该字符集进行编码。在客户端,如果没有定义                           character-set-results,则采用character-set-client字符集作为默认的字符集。所以只需要设置character-set-client字符集。

 

直接在命令行设置:

 mysql> SETcharacter_set_client = utf8

 mysql> SET character_set_connection=utf8

 mysql> SET character_set_server= utf8

mysql3308>show variables like '%character%';

+--------------------------+-----------------------------------------+

| Variable_name            |Value                                   |

+--------------------------+-----------------------------------------+

| character_set_client     |latin1                                  |

| character_set_connection | latin1                                  |

| character_set_database   |utf8                                    |

| character_set_filesystem | binary                                  |

| character_set_results    |latin1                                  |

| character_set_server     |utf8                                    |

| character_set_system     |utf8                                    |

| character_sets_dir       |/usr/local/mysql-5.6.16/share/charsets/ |

+--------------------------+-----------------------------------------+

 

 

 

[mysql.server]

user=mysql

basedir=/var/lib

 

[mysqld_safe]

#错误日志:

log-error=/var/log/mysqld.log        //错误日志

log-error  [=/path/to/file]            //错误日志

pid-file=/var/run/mysqld/mysqld.pid

 

[mysql]

default-character-set=utf8

no-auto-rehash

# Remove the next comment character if you are not familiar with SQL

#safe-updates

 

no-bee//关闭警告声音

prompt=\\u@\\h:\\d \\r:\\m:\\s>       //设置mysql命令行的提示信息 mysql5.1

prompt="\\u@\\h:\\d>"                //mysql5.5

[root@node1 3307]# mysql -uroot -p -S /data/3307/mysql.sock --prompt="mysql3307>"

 

 

数据库字符集my.cnf配置:

mysql5.5以下:

[mysqld]下添加

default-character-set=utf8

[client]下添加

default-character-set=utf8

 

mysql 5.5 改为:

[client]

default-character-set = utf8

[mysqld]

character-set-server = utf8

 

 

 

 

分割线
感谢打赏
江西数库信息技术有限公司
YWSOS.COM 平台代运维解决方案
 评论
 发表评论
姓   名:

Powered by AKCMS