<p>
<span> 2015.07.21<br />
<br />
</span>
</p>
<p>
<b>一、</b><b>MySQL</b><b>服务器安装</b>
</p>
<p style="margin-left:18.0pt;text-indent:-18.0pt;">
<b><span>1. </span></b><b>添加用户</b>:
</p>
<p>
<span>groupadd mysql</span>
</p>
<p>
<span>useradd -r -g mysql mysql</span>
</p>
<p style="margin-left:18.0pt;text-indent:-18.0pt;">
<b><span>2. </span></b><b>上传<span>rpm</span></b><b>包</b><br />
<span style="color:#E53333;">注:Oracle</span><span style="color:#E53333;">官方提供的最新MySQL安装包,目前没有更高版本的,有可能其他版本还够稳定,所以Oracle没有提供</span>
</p>
<p>
<span>MySQL-client-advanced-5.6.25-1.el6.x86_64.rpm </span>
</p>
<p>
<span>MySQL-server-advanced-5.6.25-1.el6.x86_64.rpm </span>
</p>
<p>
<span>MySQL-test-advanced-5.6.25-1.el6.x86_64.rpm</span>
</p>
<p>
<span>MySQL-devel-advanced-5.6.25-1.el6.x86_64.rpm </span>
</p>
<p>
<span>MySQL-shared-advanced-5.6.25-1.el6.x86_64.rpm</span>
</p>
<p>
<span>MySQL-embedded-advanced-5.6.25-1.el6.x86_64.rpm <br />
MySQL-shared-compat-advanced-5.6.25-1.el6.x86_64.rpm</span>
</p>
<p style="margin-left:18.0pt;text-indent:-18.0pt;">
<b><span>3. </span></b><b>安装<span>rpm</span></b><b>包<span></span></b>
</p>
<p>
<span style="color:#E53333;">注:安装rpm 包的时候,要按照顺序,shared-compat 需要再server前安装,不然会报错</span>
</p>
<p>
<span>rpm –ivh
MySQL-shared-compat-advanced-5.6.25-1.el6.x86_64.rpm</span>
</p>
<p>
<span>rpm –ivh
MySQL-client-advanced-5.6.25-1.el6.x86_64.rpm </span>
</p>
<p>
<span>rpm –ivh
MySQL-test-advanced-5.6.25-1.el6.x86_64.rpm <span style="color:#006600;">#这个可以不用安装,我每次都没有安装</span></span>
</p>
<p>
<span>rpm –ivh
MySQL-devel-advanced-5.6.25-1.el6.x86_64.rpm </span>
</p>
<p>
<span>rpm –ivh
MySQL-shared-advanced-5.6.25-1.el6.x86_64.rpm</span>
</p>
<p>
<span>rpm –ivh
MySQL-embedded-advanced-5.6.25-1.el6.x86_64.rpm </span>
</p>
<p>
<span>rpm –ivh
MySQL-server-advanced-5.6.25-1.el6.x86_64.rpm </span>
</p>
<p style="margin-left:18.0pt;text-indent:-18.0pt;">
<b><span>4. </span></b><b>修改<span>datadir </span></b><b>目录:</b>
</p>
<p style="text-indent:18.0pt;">
<span>1). service
mysql stop <span style="color:#006600;">#修改MySQL配置文件,参数文件最好是再MySQL停止的情况修改</span></span>
</p>
<p style="text-indent:18.0pt;">
<span>2). mv
/mysqldata/mysql/* /mydata/mysql/</span>
</p>
<p>
<span> chown –R mysql.mysql /mydata/mysql/* <span style="color:#006600;">#root 用户移动目录后,权限会被修改,所以要授予MySQL用户权限,不然启动MySQL会报错</span></span>
</p>
<p style="text-indent:21.0pt;">
<span>3). vi /etc/init.d/mysql</span>
</p>
<p>
原:
</p>
<p>
<span># Set some defaults</span>
</p>
<p>
<span>mysqld_pid_file_path=</span>
</p>
<p>
<span>if test -z "$basedir"</span>
</p>
<p>
<span>then</span>
</p>
<p>
<span>
basedir=/usr</span>
</p>
<p>
<span>
bindir=/usr/bin</span>
</p>
<p>
<span> if
test -z "$datadir"</span>
</p>
<p>
<span>
then</span>
</p>
<p>
<span> <b> <span style="color:#006600;">datadir=/var/lib/mysql</span></b></span>
</p>
<p>
<b>修改后</b>:
</p>
<p>
<span># Set some defaults</span>
</p>
<p>
<span>mysqld_pid_file_path=</span>
</p>
<p>
<span>if test -z "$basedir"</span>
</p>
<p>
<span>then</span>
</p>
<p>
<span>
basedir=/usr</span>
</p>
<p>
<span>
bindir=/usr/bin</span>
</p>
<p>
<span> if
test -z "$datadir"</span>
</p>
<p>
<span>
then</span>
</p>
<p style="text-indent:20.25pt;">
<b><span style="color:#E53333;">datadir=/mysqldata/mysql</span></b><span style="text-indent:20.25pt;line-height:1.5;"> <span style="color:#006600;">#根据个人的规划修改</span></span>
</p>
<p style="text-indent:20.25pt;">
<span>4). vi
/etc/my.cnf</span>
</p>
<p style="text-indent:20.25pt;">
<span>datadir=/mysqldata/mysql</span>
</p>
<p style="text-indent:20.25pt;">
<span>socket = /mysqldata/mysql/mysql.sock <span style="color:#006600;">#sock 文件一般是放在tmp下面,我这里跟数据文件放在一起</span></span>
</p>
<p style="text-indent:20.25pt;">
<span>5). service
mysql start</span>
</p>
<p>
以上修改<span>MySQL</span>数据目录需要主从机上都需做。
</p>
<p style="text-indent:20.25pt;">
<span style="text-indent:20.25pt;line-height:1.5;"> </span>
</p>
<p style="margin-left:25.5pt;text-indent:-25.5pt;">
<b>二、</b><b>主从配置步骤</b><b></b>
</p>
<p style="margin-left:38.25pt;text-indent:-18.0pt;">
<span>1. </span>主从机修改配置文件;
</p>
<p style="margin-left:38.25pt;text-indent:-18.0pt;">
<span>2. </span>从机指向主机,开启接收。
</p>
<p style="margin-left:38.25pt;text-indent:0cm;">
主<span>my.cnf<br />
<table border="1" cellspacing="0" cellpadding="0" width="596" style="width:447.2pt;border:none;">
<tbody>
<tr>
<td valign="top" style="border:solid windowtext 1.0pt;">
<p style="margin-left:38.25pt;">
<span>[client]</span>
</p>
<p style="margin-left:38.25pt;">
<span>port =
3306</span>
</p>
<p style="margin-left:38.25pt;">
<span>socket
= /mysqldata/mysql/mysql.sock <span style="color:#00B050;">#</span></span><span style="font-family:宋体;color:#00B050;">客户端使用的进程通道文件</span> <span></span>
</p>
<p style="margin-left:38.25pt;">
<span>[mysqld]</span>
</p>
<p style="margin-left:38.25pt;">
<span>server-id=1 <span style="color:#00B050;">#</span></span><span style="font-family:宋体;color:#00B050;">主从中节点的唯一</span><span style="color:#00B050;">ID</span><span></span>
</p>
<p style="margin-left:38.25pt;">
<span>log-bin=mysql-master-bin
</span><span style="font-size:9.0pt;color:#006600;background:white;">#</span><span style="font-size:9.0pt;font-family:宋体;color:#006600;background:white;">二进制日志</span>名字,用于主从复制<span></span>
</p>
<p style="margin-left:38.25pt;">
<span>binlog_format
= mixed <span style="color:#00B050;">#</span></span><span style="font-family:"color:#00B050;background:white;">binlog</span><span style="font-family:宋体;color:#00B050;background:white;">日志格式,</span><span style="font-family:"color:#00B050;background:white;">mysql</span><span style="font-family:宋体;color:#00B050;background:white;">默认采用</span><span style="font-family:"color:#00B050;background:white;">statement</span><span style="font-family:宋体;color:#00B050;background:white;">,建议使用</span><span style="font-family:"color:#00B050;background:white;">mixed</span><span style="color:#00B050;"></span>
</p>
<p style="margin-left:38.25pt;">
<span>expire_logs_days=30
</span><span style="font-size:9.0pt;color:#006600;background:white;">#</span><span style="font-size:9.0pt;font-family:宋体;color:#006600;background:white;">二进制日志保留的时间</span><span></span>
</p>
<p style="margin-left:38.25pt;">
<span>max_connections=1000 <span style="color:#00B050;">#</span></span><span style="font-family:宋体;color:#00B050;">最大连接数</span><span></span>
</p>
<p style="margin-left:38.25pt;">
<span>innodb_flush_log_at_trx_commit=1 <span style="color:#00B050;">#</span></span><span style="font-family:宋体;color:#00B050;">每隔</span><span style="color:#00B050;">1</span><span style="font-family:宋体;color:#00B050;">秒将数据写入文件</span><span style="color:#00B050;">InnoDB</span><span style="font-family:宋体;color:#00B050;">默认</span><span style="color:#00B050;">1</span><span></span>
</p>
<p style="margin-left:38.25pt;">
<span>sync_binlog=1 <span style="color:#00B050;">#</span></span><span style="font-family:宋体;color:#00B050;">主从同步模式</span><span style="color:#00B050;"> 1</span><span style="font-family:宋体;color:#00B050;">表示实时同步</span><span></span>
</p>
<p style="margin-left:38.25pt;">
<span>binlog-do-db=pwapacydb <span style="color:#00B050;">#</span></span><span style="font-family:宋体;color:#00B050;">需要做复制的数据库名</span><span style="color:#00B050;"></span>
</p>
<p style="margin-left:38.25pt;">
<span>#binlog-ignore-db=mysql,test,information_schema <span style="color:#00B050;">#</span></span><span style="font-family:宋体;color:#00B050;">二进制日志过滤条件</span><span></span>
</p>
<p style="margin-left:38.25pt;">
<span>innodb_buffer_pool_size
= 20480M <span style="color:#00B050;">#</span></span><span style="font-family:宋体;color:#00B050;">根据实际内存</span><span style="color:#00B050;"> <span><65%</span></span>
</p>
<p style="margin-left:38.25pt;">
<span>skip-name-resolve
#</span><span style="font-size:9.0pt;font-family:宋体;color:#00B050;">对局域网各服务器的</span><span style="font-size:9.0pt;color:#00B050;">IP</span><span style="font-size:9.0pt;font-family:宋体;color:#00B050;">做了反向解析</span><span style="font-size:9.0pt;color:#00B050;"> </span><span style="font-size:9.0pt;font-family:宋体;color:#00B050;">加速访问速度</span><span></span>
</p>
<p style="margin-left:38.25pt;">
<span>skip-external-locking </span><span style="font-size:9.0pt;color:#006600;background:white;">#</span><span style="font-size:9.0pt;font-family:宋体;color:#006600;background:white;">加上可以避免因资源锁引起</span><span style="font-size:9.0pt;color:#006600;background:white;">MySQL</span><span style="font-size:9.0pt;font-family:宋体;color:#006600;background:white;">服务停止</span><span></span>
</p>
<p style="margin-left:38.25pt;">
<span>datadir
= /mysqldata/mysql <span style="color:#00B050;">#</span></span><span style="font-family:宋体;color:#00B050;">数据文件存放目录</span><span style="color:#00B050;"></span>
</p>
<p style="margin-left:38.25pt;">
<span>port =
3306 <span style="color:#00B050;">#MySQL</span></span><span style="font-family:宋体;color:#00B050;">访问端口</span><span></span>
</p>
<p style="margin-left:38.25pt;">
<span>socket
= /mysqldata/mysql/mysql.sock</span>
</p>
<p style="margin-left:38.25pt;text-indent:0cm;">
<span>sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES</span>
</p>
<p style="text-indent:0cm;">
<span> </span>
</p>
</td>
</tr>
</tbody>
</table>
</span>
</p>
从机my.cnf 配置(参考上面的)<br />
<table border="1" cellspacing="0" cellpadding="0" style="border:none;">
<tbody>
<tr>
<td width="437" valign="top" style="border:solid windowtext 1.0pt;">
<p>
</p>
<p>
[client]
</p>
<p>
port = 3306
</p>
<p>
socket =
/mysqldata/mysql/mysql.sock
</p>
<p>
[mysqld]
</p>
<p>
server-id=2
</p>
<p>
datadir = /mysqldata/mysql
</p>
<p>
port = 3306
</p>
<p>
socket =
/mysqldata/mysql/mysql.sock
</p>
<p>
user=mysql
</p>
<p>
log-bin=mysql-slave-bin
</p>
<p>
max_binlog_size=200M
</p>
<p>
binlog_format = mixed
</p>
<p>
expire_logs_days=30
</p>
<p>
innodb_flush_log_at_trx_commit=1
</p>
<p>
sync_binlog=1
</p>
<p>
read_only=1
</p>
<p>
replicate-do-db =test
</p>
<p>
innodb_buffer_pool_size = 20480M
</p>
<p>
skip-name-resolve
</p>
<p>
skip-external-locking
</p>
<p style="text-indent:0cm;">
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES<span style="line-height:1.5;text-indent:0cm;"> </span>
</p>
</td>
</tr>
</tbody>
</table>
<p style="margin-left:38.25pt;text-indent:0cm;">
从<span>my.cnf</span>
</p>
<p style="margin-left:38.25pt;text-indent:-18.0pt;">
<span>3. </span>主从机创建同步用户授权:
</p>
<p style="margin-left:38.25pt;text-indent:0cm;">
<span style="color:#E53333;">注:主从都建用户是为了主从可以相互切换,IP指向对方,如果只在从上面做,则配置为主从复制,如果主从机都指向,则是主主复制</span>
</p>
<p style="margin-left:38.25pt;">
<span>mysql>
grant replication slave on *.* to 'zhanglin'@'172.16.11.87' identified by
'zhanglin';</span>
</p>
<p style="margin-left:38.25pt;">
<span>mysql>
flush privileges;</span>
</p>
<p style="margin-left:38.25pt;">
<span>mysql>
show master status;</span>
</p>
<p style="margin-left:38.25pt;text-indent:-18.0pt;">
<span>4. </span><strong>从机指向主机</strong><span>:</span>
</p>
<p style="margin-left:38.25pt;">
<span>mysql>
change master to master_host='172.0.0.1',</span>
</p>
<p style="margin-left:38.25pt;">
<span>master_user='zhanglin',</span>
</p>
<p style="margin-left:38.25pt;">
<span>master_password='zhanglin',</span>
</p>
<p style="margin-left:38.25pt;">
<span>master_log_file='mysql-master-bin.000007', <span style="color:#006600;">#主机上当前的二进制日志名字</span></span>
</p>
<p style="margin-left:38.25pt;">
<span>master_log_pos=<span style="color:#5C5C5C;font-family:Consolas, monospace;letter-spacing:0.100000001490116px;line-height:15.6000003814697px;white-space:normal;background-color:#FFFFFF;">1036536265</span>;</span><span style="line-height:1.5;"> <span style="color:#006600;">#在主机上,show master status 可以看到二进制日志的位置</span></span>
</p>
<p style="margin-left:38.25pt;text-indent:-18.0pt;">
<span>5. </span><span>mysql> start slave; <span style="color:#006600;">#</span></span><span style="color:#006600;">启动从库连接</span>
</p>
<p style="margin-left:38.25pt;text-indent:-18.0pt;">
<span>6. </span><span>mysql> show slave status\G; <span style="color:#006600;"> #</span></span><span style="color:#006600;">查看连接情况</span><span style="line-height:1.5;text-indent:0cm;"> </span>
</p>
<p style="margin-left:38.25pt;">
<span>mysql>
show slave status\G;</span>
</p>
<p style="margin-left:38.25pt;">
<br />
</p>
<div>
<div class="codeheads">
<p>
点击(<span style="cursor:pointer;color:red;" onclick="code_hide('code56')">此处</span>)折叠或打开
</p>
</div>
<div id="code56" class="codeText">
<ol style="margin:0 1px 0 0px;padding-left:40px;" start="1" class="dp-css">
<li>
<span style="color:#000000;"><span style="color:#0000CC;">*</span><span style="color:#0000CC;">*</span><span style="color:#0000CC;">*</span><span style="color:#0000CC;">*</span><span style="color:#0000CC;">*</span><span style="color:#0000CC;">*</span><span style="color:#0000CC;">*</span><span style="color:#0000CC;">*</span><span style="color:#0000CC;">*</span><span style="color:#0000CC;">*</span><span style="color:#0000CC;">*</span><span style="color:#0000CC;">*</span><span style="color:#0000CC;">*</span><span style="color:#0000CC;">*</span><span style="color:#0000CC;">*</span><span style="color:#0000CC;">*</span><span style="color:#0000CC;">*</span><span style="color:#0000CC;">*</span><span style="color:#0000CC;">*</span><span style="color:#0000CC;">*</span><span style="color:#0000CC;">*</span><span style="color:#0000CC;">*</span><span style="color:#0000CC;">*</span><span style="color:#0000CC;">*</span><span style="color:#0000CC;">*</span><span style="color:#0000CC;">*</span><span style="color:#0000CC;">*</span> 1<span style="color:#0000CC;">.</span> row <span style="color:#0000CC;">*</span><span style="color:#0000CC;">*</span><span style="color:#0000CC;">*</span><span style="color:#0000CC;">*</span><span style="color:#0000CC;">*</span><span style="color:#0000CC;">*</span><span style="color:#0000CC;">*</span><span style="color:#0000CC;">*</span><span style="color:#0000CC;">*</span><span style="color:#0000CC;">*</span><span style="color:#0000CC;">*</span><span style="color:#0000CC;">*</span><span style="color:#0000CC;">*</span><span style="color:#0000CC;">*</span><span style="color:#0000CC;">*</span><span style="color:#0000CC;">*</span><span style="color:#0000CC;">*</span><span style="color:#0000CC;">*</span><span style="color:#0000CC;">*</span><span style="color:#0000CC;">*</span><span style="color:#0000CC;">*</span><span style="color:#0000CC;">*</span><span style="color:#0000CC;">*</span><span style="color:#0000CC;">*</span><span style="color:#0000CC;">*</span><span style="color:#0000CC;">*</span><span style="color:#0000CC;">*</span><br />
</span>
</li>
<li>
Slave_IO_State: Waiting <span style="color:#0000FF;">for</span> master <span style="color:#0000FF;">to</span> send event<br />
</li>
<li>
Master_Host: 10<span style="color:#0000CC;">.</span>139<span style="color:#0000CC;">.</span>52<span style="color:#0000CC;">.</span>164<br />
</li>
<li>
Master_User: ideal<br />
</li>
<li>
Master_Port: 3306<br />
</li>
<li>
Connect_Retry: 60<br />
</li>
<li>
Master_Log_File: mysql-master-<span style="color:#FF0000;">bin</span><span style="color:#0000CC;">.</span>000007<br />
</li>
<li>
Read_Master_Log_Pos: 1036536095<br />
</li>
<li>
Relay_Log_File: wmback-relay-<span style="color:#FF0000;">bin</span><span style="color:#0000CC;">.</span>000011<br />
</li>
<li>
Relay_Log_Pos: 1036536265<br />
</li>
<li>
Relay_Master_Log_File: mysql-master-<span style="color:#FF0000;">bin</span><span style="color:#0000CC;">.</span>000007<br />
</li>
<li>
<span style="color:#E53333;"><strong>Slave_IO_Running: Yes</strong></span><br />
</li>
<li>
<span style="color:#E53333;"><strong> Slave_SQL_Running: Yes</strong></span><br />
</li>
<li>
Replicate_Do_DB: <br />
</li>
<li>
Replicate_Ignore_DB: <br />
</li>
<li>
Replicate_Do_Table: <br />
</li>
<li>
Replicate_Ignore_Table: <br />
</li>
<li>
Replicate_Wild_Do_Table: <br />
</li>
<li>
Replicate_Wild_Ignore_Table: <br />
</li>
<li>
Last_Errno: 0<br />
</li>
<li>
Last_Error: <br />
</li>
<li>
Skip_Counter: 0<br />
</li>
<li>
Exec_Master_Log_Pos: 1036536095<br />
</li>
<li>
Relay_Log_Space: 1036536493<br />
</li>
<li>
Until_Condition: None<br />
</li>
<li>
Until_Log_File: <br />
</li>
<li>
Until_Log_Pos: 0<br />
</li>
<li>
Master_SSL_Allowed: No<br />
</li>
<li>
Master_SSL_CA_File: <br />
</li>
<li>
Master_SSL_CA_Path: <br />
</li>
<li>
Master_SSL_Cert: <br />
</li>
<li>
Master_SSL_Cipher: <br />
</li>
<li>
Master_SSL_Key: <br />
</li>
<li>
Seconds_Behind_Master: 0<br />
</li>
<li>
Master_SSL_Verify_Server_Cert: No<br />
</li>
<li>
Last_IO_Errno: 0<br />
</li>
<li>
Last_IO_Error: <br />
</li>
<li>
Last_SQL_Errno: 0<br />
</li>
<li>
Last_SQL_Error: <br />
</li>
<li>
Replicate_Ignore_Server_Ids: <br />
</li>
<li>
Master_Server_Id: 1<br />
</li>
<li>
Master_UUID: 10162a19-2c75-11e5-af6c-00163e0007a0<br />
</li>
<li>
Master_Info_File: <span style="color:#0000CC;">/</span>mydata<span style="color:#0000CC;">/</span>mysql<span style="color:#0000CC;">/</span>master<span style="color:#0000CC;">.</span>info<br />
</li>
<li>
SQL_Delay: 0<br />
</li>
<li>
SQL_Remaining_Delay: <span style="color:#0000FF;">NULL</span><br />
</li>
<li>
Slave_SQL_Running_State: Slave has read all relay <span style="color:#FF0000;">log</span><span style="color:#0000CC;">;</span> waiting <span style="color:#0000FF;">for</span> the slave I<span style="color:#0000CC;">/</span>O thread <span style="color:#0000FF;">to</span> <span style="color:#0000FF;">update</span> it<br />
</li>
<li>
Master_Retry_Count: 86400<br />
</li>
<li>
Master_Bind: <br />
</li>
<li>
Last_IO_Error_Timestamp: <br />
</li>
<li>
Last_SQL_Error_Timestamp: <br />
</li>
<li>
Master_SSL_Crl: <br />
</li>
<li>
Master_SSL_Crlpath: <br />
</li>
<li>
Retrieved_Gtid_Set: <br />
</li>
<li>
Executed_Gtid_Set: <br />
</li>
<li>
Auto_Position: 0<br />
</li>
<li>
1 row <span style="color:#0000FF;">in</span> <span style="color:#0000FF;">set</span> <span style="color:#0000CC;">(</span>0<span style="color:#0000CC;">.</span>00 sec<span style="color:#0000CC;">)</span><br />
</li>
<li>
<br />
</li>
<li>
ERROR: <br />
</li>
<li>
No query specified
</li>
</ol>
</div>
</div>
<p>
<br />
</p>
<p style="margin-left:38.25pt;text-indent:21.1pt;">
<b>Slave_IO_Running:
Yes</b>
</p>
<p style="margin-left:38.25pt;text-indent:21.1pt;">
<b>Slave_SQL_Running:
Yes</b>
</p>
<p style="margin-left:38.25pt;text-indent:0cm;">
看到两个<span style="color:#E53333;"><strong>Yes </strong></span>表示主从搭建成功,可以测试创建数据库,表并插入数据,我这里是成功的。
</p>
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/30936525/viewspace-2016541/
,如需转载,请注明出处,否则将追究法律责任。