[LNMP]Mysql生产环境配置

基础环境


centos 6.x
mysql-community-server5.6 或以上

安装&启动


配置mysql官方yum源

详见:[LNMP]Linux的Web服务基础配置

安装server、client

<pre>
yum install mysql-community-server mysql-community-client mysql-community-devel
</pre>

创建数据库目录:(根据需要,对应目录在my.cnf 中修改)

<pre>
mkdir -p /data/db/mysql/
mkdir -p /var/log/mysql/
</pre>

启动初始化,改好配置后再重启:

<pre>
service mysqld start
chkconfig mysqld on
</pre>

角色定位


常用是“1主多从”的架构:有1台主服务,n台从服务,配置方式详见《主从设置章节》。

公共配置


由于配置较多,以下只列出生产环境需要配置的部分(检查以下配置),文件路径:/etc/my.cnf

<pre>
[mysql]
port = 3306
socket=/data/db/mysql/mysql.sock
default-character-set=utf8

[mysqld]
port = 3306
user = mysql
socket=/data/db/mysql/mysql.sock
datadir=/data/db/mysql/
character-set-server= utf8

全局配置

skip-name-resolve
back_log = 512
table_open_cache =2048
query_cache_size =0
tmp_table_size =32M
max_heap_table_size= 32M
sort_buffer_size =2M
join_buffer_size =2M
read_buffer_size =2M
read_rnd_buffer_size= 2M
symbolic-links=0
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES

连接相关配置

connect_timeout =10
interactive_timeout= 60
wait_timeout = 60
max_connections =1000 #根据实际情况调整
max_connect_errors= 1000

log设置

log_error =/var/log/mysql/mysqld.log
slow_query_log =ON
slow_query_log_file= /var/log/mysql/slow.log
long_query_time =8

innodb 设置

innodb_file_per_table= ON
innodb_flush_log_at_trx_commit= 1
innodb_buffer_pool_size= 4G #专用DB数据库设置成 物理内存50%,非专用设置成 25%
innodb_data_file_path= ibdata1:1G:autoextend
innodb_log_buffer_size= 64M
innodb_log_file_size= 256M
innodb_log_files_in_group= 2
innodb_open_files= 2048

myisam 设置

key_buffer_size =8M

[mysqldump]
quick
socket=/data/db/mysql/mysql.sock
max_allowed_packet= 64M

[mysqld_safe]
log-error=/var/log/mysql/mysqld.log
pid-file=/var/run/mysql/mysqld.pid
</pre>

主机配置


放在 [mysqld] 里面

<pre>
server_id = 1 #若是在主从架构中,每台机都必须不一样
log_bin =mysql-bin.log
log_bin_index =mysql-bin.index
expire_logs_days =30
sync_binlog = 0
</pre>

从机配置

放在 [mysqld] 里面

<pre>
server_id = 2 #若是在主从架构中,每台机都必须不一样
log_bin =mysql-bin.log
log_bin_index =mysql-bin.index
expire_logs_days =30
sync_binlog = 0
</pre>

主从同步设置


  1. 根据上面的配置,分别配置好 主机和从机,并启动服务(参考前面);
  2. 在主机上,创建同步账户:
    <pre>
    mysql> grant replication slave,replication client on . to 'replUser'@'192.168.1.%' identified by 'replPw';
    </pre>
  3. 在主机上,锁表并导出数据:
    3-1 锁表
    <pre>
    mysql > flush tables with read lock;
    </pre> 3-2 导出数据
    <pre>
    mysqldump -u root test2 > db.sql
    </pre>3-3 在从机上导入db.sql 文件
  4. 在主机查询,主机状态:
    <pre>
    mysql >SHOW MASTER STATUS;
    </pre>
  5. 在从机上,设置同步点:
    <pre>
    mysql > CHANGE MASTER TOMASTER_HOST='192.168.115.120',MASTER_USER='replUser',MASTER_PASSWORD='replPw',MASTER_LOG_FILE='mysql-bin.000003',MASTER_LOG_POS=120;
    </pre>
  6. 在主机上,关闭锁表:
    <pre>
    mysql > UNLOCK TABLES;
    </pre>
  7. 在从机上,开启同步并查询状态:
    <pre>
    mysql > start slave;
    mysql > show slave status\G;
    </pre>
  8. 查看Slave_IO_Running、Slave_SQL_Running 为 YES,即同步成功

日常维护命令


<pre>

  1. showprocesslist/show full processlist; 查看MySQL进程任务命令,其中带full参数的,则显示完整语句信息。
  2. show masterstatus\G; 查看主机的二进制日志信息
  3. show slavestatus\G; 查看从机同步状态的详细信息。如果主从同步出现错误,则有详细的错误信息提示。
  4. showdatabases; 列出MySQL中的所有数据库
  5. showtables; 列出指定数据库中的所有数据表
  6. show createtable A; 查看创建数据表A的sql语句
  7. desc A; 查看数据表 A 字段结构信息
    </pre>

主从异常维护


Mysql主从一致性检查与修复

utf8mb4字符集


<pre>
1.MySQL中的utf-8并不是真正意义上的utf-8,它只能存储1~3个字节长度的utf-8编码,而存储4个字节的必须用utf8mb4(mysql>=5.5.3支持),否则会出现乱码。例如在微信管理系统中,消息文本使用了emoji表情:符号,必须使用utf8mb4进行储存。
2.注意最大字符长度:以INNODB为基础,utf8最长VARCHAR(255),utf8mb4最长为VARCHAR(191)。
3.如果使用PHP来操作到 MySQL,字符串仍可能面临在数据库中以非 UTF-8 的格式进行存储的问题。
4.为了字符串从 PHP 到 MySQL都使用 UTF-8,确认数据表都设定为 utf8mb4 字符集和整理,并且确保 PDO 连接请求也使用了 utf8mb4 字符集,这是非常重要的。要求在的mysql>=5.5.3版本,表、字段必须使用utf8mb4字符集和utf8mb4整理。
utf8参考资料
</pre>

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 202,905评论 5 476
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,140评论 2 379
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 149,791评论 0 335
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,483评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,476评论 5 364
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,516评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,905评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,560评论 0 256
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,778评论 1 296
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,557评论 2 319
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,635评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,338评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,925评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,898评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,142评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,818评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,347评论 2 342

推荐阅读更多精彩内容