模板配置文件路径:
/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