{"id":87,"date":"2021-04-13T12:49:07","date_gmt":"2021-04-13T04:49:07","guid":{"rendered":"http:\/\/daishen.ltd\/?p=87"},"modified":"2021-07-26T20:46:46","modified_gmt":"2021-07-26T12:46:46","slug":"%e5%88%86%e5%b8%83%e5%bc%8f%e6%9e%b6%e6%9e%84-mycat","status":"publish","type":"post","link":"https:\/\/www.daishen.ltd\/?p=87","title":{"rendered":"\u5206\u5e03\u5f0f\u67b6\u6784-MyCAT"},"content":{"rendered":"<p><meta charset=\"UTF-8\"><meta name=\"viewport\" content=\"width=device-width initial-scale=1\"><br \/>\n<title>\u5206\u5e03\u5f0f\u67b6\u6784-MyCAT<\/title><\/p>\n<h1>1. MyCAT\u57fa\u7840\u67b6\u6784\u56fe<\/h1>\n<p><img decoding=\"async\" src=\"https:\/\/\/\/upload-images.jianshu.io\/upload_images\/16956686-7e5ff50e4071c7eb.png?imageMogr2\/auto-orient\/strip|imageView2\/2\/w\/843\/format\/webp\" referrerpolicy=\"no-referrer\" alt=\"img\"><\/p>\n<p>image.png<\/p>\n<h1>2. MyCAT\u57fa\u7840\u67b6\u6784\u51c6\u5907<\/h1>\n<h2>2.1 \u73af\u5883\u51c6\u5907\uff1a<\/h2>\n<p>&nbsp;<\/p>\n<pre><code class=\"language-undefined\" lang=\"undefined\">\u4e24\u53f0\u865a\u62df\u673a db01 db02\n\u6bcf\u53f0\u521b\u5efa\u56db\u4e2amysql\u5b9e\u4f8b\uff1a3307 3308 3309 3310\n<\/code><\/pre>\n<h2>2.2 \u5220\u9664\u5386\u53f2\u73af\u5883\uff1a<\/h2>\n<p>&nbsp;<\/p>\n<pre><code class=\"language-kotlin\" lang=\"kotlin\">pkill mysqld\nrm -rf \/data\/330* \nmv \/etc\/my.cnf \/etc\/my.cnf.bak\n<\/code><\/pre>\n<h2>2.3 \u521b\u5efa\u76f8\u5173\u76ee\u5f55\u521d\u59cb\u5316\u6570\u636e<\/h2>\n<p>&nbsp;<\/p>\n<pre><code class=\"language-kotlin\" lang=\"kotlin\">mkdir \/data\/33{07..10}\/data -p\nmysqld --initialize-insecure  --user=mysql --datadir=\/data\/3307\/data --basedir=\/application\/mysql\nmysqld --initialize-insecure  --user=mysql --datadir=\/data\/3308\/data --basedir=\/application\/mysql\nmysqld --initialize-insecure  --user=mysql --datadir=\/data\/3309\/data --basedir=\/application\/mysql\nmysqld --initialize-insecure  --user=mysql --datadir=\/data\/3310\/data --basedir=\/application\/mysql\n<\/code><\/pre>\n<h2>2.4 \u51c6\u5907\u914d\u7f6e\u6587\u4ef6\u548c\u542f\u52a8\u811a\u672c<\/h2>\n<p>&nbsp;<\/p>\n<pre><code class=\"language-cnf\" lang=\"cnf\">========db01==============\ncat &gt;\/data\/3307\/my.cnf&lt;&lt;EOF\n[mysqld]\nbasedir=\/application\/mysql\ndatadir=\/data\/3307\/data\nsocket=\/data\/3307\/mysql.sock\nport=3307\nlog-error=\/data\/3307\/mysql.log\nlog_bin=\/data\/3307\/mysql-bin\nbinlog_format=row\nskip-name-resolve\nserver-id=7\ngtid-mode=on\nenforce-gtid-consistency=true\nlog-slave-updates=1\nEOF\n\ncat &gt;\/data\/3308\/my.cnf&lt;&lt;EOF\n[mysqld]\nbasedir=\/application\/mysql\ndatadir=\/data\/3308\/data\nport=3308\nsocket=\/data\/3308\/mysql.sock\nlog-error=\/data\/3308\/mysql.log\nlog_bin=\/data\/3308\/mysql-bin\nbinlog_format=row\nskip-name-resolve\nserver-id=8\ngtid-mode=on\nenforce-gtid-consistency=true\nlog-slave-updates=1\nEOF\n\ncat &gt;\/data\/3309\/my.cnf&lt;&lt;EOF\n[mysqld]\nbasedir=\/application\/mysql\ndatadir=\/data\/3309\/data\nsocket=\/data\/3309\/mysql.sock\nport=3309\nlog-error=\/data\/3309\/mysql.log\nlog_bin=\/data\/3309\/mysql-bin\nbinlog_format=row\nskip-name-resolve\nserver-id=9\ngtid-mode=on\nenforce-gtid-consistency=true\nlog-slave-updates=1\nEOF\ncat &gt;\/data\/3310\/my.cnf&lt;&lt;EOF\n[mysqld]\nbasedir=\/application\/mysql\ndatadir=\/data\/3310\/data\nsocket=\/data\/3310\/mysql.sock\nport=3310\nlog-error=\/data\/3310\/mysql.log\nlog_bin=\/data\/3310\/mysql-bin\nbinlog_format=row\nskip-name-resolve\nserver-id=10\ngtid-mode=on\nenforce-gtid-consistency=true\nlog-slave-updates=1\nEOF\n\ncat &gt;\/etc\/systemd\/system\/mysqld3307.service&lt;&lt;EOF\n[Unit]\nDescription=MySQL Server\nDocumentation=man:mysqld(8)\nDocumentation=http:\/\/dev.mysql.com\/doc\/refman\/en\/using-systemd.html\nAfter=network.target\nAfter=syslog.target\n[Install]\nWantedBy=multi-user.target\n[Service]\nUser=mysql\nGroup=mysql\nExecStart=\/application\/mysql\/bin\/mysqld --defaults-file=\/data\/3307\/my.cnf\nLimitNOFILE = 5000\nEOF\n\ncat &gt;\/etc\/systemd\/system\/mysqld3308.service&lt;&lt;EOF\n[Unit]\nDescription=MySQL Server\nDocumentation=man:mysqld(8)\nDocumentation=http:\/\/dev.mysql.com\/doc\/refman\/en\/using-systemd.html\nAfter=network.target\nAfter=syslog.target\n[Install]\nWantedBy=multi-user.target\n[Service]\nUser=mysql\nGroup=mysql\nExecStart=\/application\/mysql\/bin\/mysqld --defaults-file=\/data\/3308\/my.cnf\nLimitNOFILE = 5000\nEOF\n\ncat &gt;\/etc\/systemd\/system\/mysqld3309.service&lt;&lt;EOF\n[Unit]\nDescription=MySQL Server\nDocumentation=man:mysqld(8)\nDocumentation=http:\/\/dev.mysql.com\/doc\/refman\/en\/using-systemd.html\nAfter=network.target\nAfter=syslog.target\n[Install]\nWantedBy=multi-user.target\n[Service]\nUser=mysql\nGroup=mysql\nExecStart=\/application\/mysql\/bin\/mysqld --defaults-file=\/data\/3309\/my.cnf\nLimitNOFILE = 5000\nEOF\ncat &gt;\/etc\/systemd\/system\/mysqld3310.service&lt;&lt;EOF\n[Unit]\nDescription=MySQL Server\nDocumentation=man:mysqld(8)\nDocumentation=http:\/\/dev.mysql.com\/doc\/refman\/en\/using-systemd.html\nAfter=network.target\nAfter=syslog.target\n\n[Install]\nWantedBy=multi-user.target\n[Service]\nUser=mysql\nGroup=mysql\nExecStart=\/application\/mysql\/bin\/mysqld --defaults-file=\/data\/3310\/my.cnf\nLimitNOFILE = 5000\nEOF\n\n\n\n========db02===============\ncat &gt;\/data\/3307\/my.cnf&lt;&lt;EOF\n[mysqld]\nbasedir=\/application\/mysql\ndatadir=\/data\/3307\/data\nsocket=\/data\/3307\/mysql.sock\nport=3307\nlog-error=\/data\/3307\/mysql.log\nlog_bin=\/data\/3307\/mysql-bin\nbinlog_format=row\nskip-name-resolve\nserver-id=17\ngtid-mode=on\nenforce-gtid-consistency=true\nlog-slave-updates=1\nEOF\ncat &gt;\/data\/3308\/my.cnf&lt;&lt;EOF\n[mysqld]\nbasedir=\/application\/mysql\ndatadir=\/data\/3308\/data\nport=3308\nsocket=\/data\/3308\/mysql.sock\nlog-error=\/data\/3308\/mysql.log\nlog_bin=\/data\/3308\/mysql-bin\nbinlog_format=row\nskip-name-resolve\nserver-id=18\ngtid-mode=on\nenforce-gtid-consistency=true\nlog-slave-updates=1\nEOF\ncat &gt;\/data\/3309\/my.cnf&lt;&lt;EOF\n[mysqld]\nbasedir=\/application\/mysql\ndatadir=\/data\/3309\/data\nsocket=\/data\/3309\/mysql.sock\nport=3309\nlog-error=\/data\/3309\/mysql.log\nlog_bin=\/data\/3309\/mysql-bin\nbinlog_format=row\nskip-name-resolve\nserver-id=19\ngtid-mode=on\nenforce-gtid-consistency=true\nlog-slave-updates=1\nEOF\n\n\ncat &gt;\/data\/3310\/my.cnf&lt;&lt;EOF\n[mysqld]\nbasedir=\/application\/mysql\ndatadir=\/data\/3310\/data\nsocket=\/data\/3310\/mysql.sock\nport=3310\nlog-error=\/data\/3310\/mysql.log\nlog_bin=\/data\/3310\/mysql-bin\nbinlog_format=row\nskip-name-resolve\nserver-id=20\ngtid-mode=on\nenforce-gtid-consistency=true\nlog-slave-updates=1\nEOF\n\ncat &gt;\/etc\/systemd\/system\/mysqld3307.service&lt;&lt;EOF\n[Unit]\nDescription=MySQL Server\nDocumentation=man:mysqld(8)\nDocumentation=http:\/\/dev.mysql.com\/doc\/refman\/en\/using-systemd.html\nAfter=network.target\nAfter=syslog.target\n[Install]\nWantedBy=multi-user.target\n[Service]\nUser=mysql\nGroup=mysql\nExecStart=\/application\/mysql\/bin\/mysqld --defaults-file=\/data\/3307\/my.cnf\nLimitNOFILE = 5000\nEOF\n\ncat &gt;\/etc\/systemd\/system\/mysqld3308.service&lt;&lt;EOF\n[Unit]\nDescription=MySQL Server\nDocumentation=man:mysqld(8)\nDocumentation=http:\/\/dev.mysql.com\/doc\/refman\/en\/using-systemd.html\nAfter=network.target\nAfter=syslog.target\n[Install]\nWantedBy=multi-user.target\n[Service]\nUser=mysql\nGroup=mysql\nExecStart=\/application\/mysql\/bin\/mysqld --defaults-file=\/data\/3308\/my.cnf\nLimitNOFILE = 5000\nEOF\n\ncat &gt;\/etc\/systemd\/system\/mysqld3309.service&lt;&lt;EOF\n[Unit]\nDescription=MySQL Server\nDocumentation=man:mysqld(8)\nDocumentation=http:\/\/dev.mysql.com\/doc\/refman\/en\/using-systemd.html\nAfter=network.target\nAfter=syslog.target\n[Install]\nWantedBy=multi-user.target\n[Service]\nUser=mysql\nGroup=mysql\nExecStart=\/application\/mysql\/bin\/mysqld --defaults-file=\/data\/3309\/my.cnf\nLimitNOFILE = 5000\nEOF\ncat &gt;\/etc\/systemd\/system\/mysqld3310.service&lt;&lt;EOF\n[Unit]\nDescription=MySQL Server\nDocumentation=man:mysqld(8)\nDocumentation=http:\/\/dev.mysql.com\/doc\/refman\/en\/using-systemd.html\nAfter=network.target\nAfter=syslog.target\n[Install]\nWantedBy=multi-user.target\n[Service]\nUser=mysql\nGroup=mysql\nExecStart=\/application\/mysql\/bin\/mysqld --defaults-file=\/data\/3310\/my.cnf\nLimitNOFILE = 5000\nEOF\n<\/code><\/pre>\n<h2>2.5 \u4fee\u6539\u6743\u9650\uff0c\u542f\u52a8\u591a\u5b9e\u4f8b<\/h2>\n<p>&nbsp;<\/p>\n<pre><code class=\"language-kotlin\" lang=\"kotlin\">chown -R mysql.mysql \/data\/*\nsystemctl start mysqld3307\nsystemctl start mysqld3308\nsystemctl start mysqld3309\nsystemctl start mysqld3310\n\nmysql -S \/data\/3307\/mysql.sock -e \"show variables like 'server_id'\"\nmysql -S \/data\/3308\/mysql.sock -e \"show variables like 'server_id'\"\nmysql -S \/data\/3309\/mysql.sock -e \"show variables like 'server_id'\"\nmysql -S \/data\/3310\/mysql.sock -e \"show variables like 'server_id'\"\n<\/code><\/pre>\n<h2>2.6 \u8282\u70b9\u4e3b\u4ece\u89c4\u5212<\/h2>\n<p>&nbsp;<\/p>\n<pre><code class=\"language-css\" lang=\"css\">\u7bad\u5934\u6307\u5411\u8c01\u662f\u4e3b\u5e93\n    10.0.0.51:3307    &lt;-----&gt;  10.0.0.52:3307\n    10.0.0.51:3309    ------&gt;  10.0.0.51:3307\n    10.0.0.52:3309    ------&gt;  10.0.0.52:3307\n\n    10.0.0.52:3308  &lt;-----&gt;    10.0.0.51:3308\n    10.0.0.52:3310  -----&gt;     10.0.0.52:3308\n    10.0.0.51:3310  -----&gt;     10.0.0.51:3308\n<\/code><\/pre>\n<h2>2.7 \u5206\u7247\u89c4\u5212<\/h2>\n<p>&nbsp;<\/p>\n<pre><code class=\"language-css\" lang=\"css\">shard1\uff1a\n    Master\uff1a10.0.0.51:3307\n    slave1\uff1a10.0.0.51:3309\n    Standby Master\uff1a10.0.0.52:3307\n    slave2\uff1a10.0.0.52:3309\nshard2\uff1a\n    Master\uff1a10.0.0.52:3308\n    slave1\uff1a10.0.0.52:3310\n    Standby Master\uff1a10.0.0.51:3308\n    slave2\uff1a10.0.0.51:3310\n<\/code><\/pre>\n<h2>2.8 \u5f00\u59cb\u914d\u7f6e<\/h2>\n<h3>\u7b2c\u4e00\u7ec4\u56db\u8282\u70b9\u7ed3\u6784<\/h3>\n<h4>10.0.0.51:3307    &lt;&#8212;&#8211;&gt;  10.0.0.52:3307<\/h4>\n<h5>db02<\/h5>\n<p>&nbsp;<\/p>\n<pre><code class=\"language-kotlin\" lang=\"kotlin\">mysql  -S \/data\/3307\/mysql.sock -e \"grant replication slave on *.* to repl@'10.0.0.%' identified by '123';\"\nmysql  -S \/data\/3307\/mysql.sock -e \"grant all  on *.* to root@'10.0.0.%' identified by '123'  with grant option;\"\n<\/code><\/pre>\n<h5>db01<\/h5>\n<p>&nbsp;<\/p>\n<pre><code class=\"language-kotlin\" lang=\"kotlin\">mysql  -S \/data\/3307\/mysql.sock -e \"CHANGE MASTER TO MASTER_HOST='10.0.0.52', MASTER_PORT=3307, MASTER_AUTO_POSITION=1, MASTER_USER='repl', MASTER_PASSWORD='123';\"\nmysql  -S \/data\/3307\/mysql.sock -e \"start slave;\"\nmysql  -S \/data\/3307\/mysql.sock -e \"show slave status\\G\"\n<\/code><\/pre>\n<h5>db02<\/h5>\n<p>&nbsp;<\/p>\n<pre><code class=\"language-kotlin\" lang=\"kotlin\">mysql  -S \/data\/3307\/mysql.sock -e \"CHANGE MASTER TO MASTER_HOST='10.0.0.51', MASTER_PORT=3307, MASTER_AUTO_POSITION=1, MASTER_USER='repl', MASTER_PASSWORD='123';\"\nmysql  -S \/data\/3307\/mysql.sock -e \"start slave;\"\nmysql  -S \/data\/3307\/mysql.sock -e \"show slave status\\G\"\n<\/code><\/pre>\n<h4>10.0.0.51:3309    &#8212;&#8212;&gt;  10.0.0.51:3307<\/h4>\n<h5>db01<\/h5>\n<p>&nbsp;<\/p>\n<pre><code class=\"language-kotlin\" lang=\"kotlin\">mysql  -S \/data\/3309\/mysql.sock  -e \"CHANGE MASTER TO MASTER_HOST='10.0.0.51', MASTER_PORT=3307, MASTER_AUTO_POSITION=1, MASTER_USER='repl', MASTER_PASSWORD='123';\"\nmysql  -S \/data\/3309\/mysql.sock  -e \"start slave;\"\nmysql  -S \/data\/3309\/mysql.sock  -e \"show slave status\\G\"\n<\/code><\/pre>\n<h4>10.0.0.52:3309    &#8212;&#8212;&gt;  10.0.0.52:3307<\/h4>\n<h5>db02<\/h5>\n<p>&nbsp;<\/p>\n<pre><code class=\"language-kotlin\" lang=\"kotlin\">mysql  -S \/data\/3309\/mysql.sock -e \"CHANGE MASTER TO MASTER_HOST='10.0.0.52', MASTER_PORT=3307, MASTER_AUTO_POSITION=1, MASTER_USER='repl', MASTER_PASSWORD='123';\"\nmysql  -S \/data\/3309\/mysql.sock -e \"start slave;\"\nmysql  -S \/data\/3309\/mysql.sock -e \"show slave status\\G\"\n<\/code><\/pre>\n<h3>\u7b2c\u4e8c\u7ec4\u56db\u8282\u70b9\u7ed3\u6784<\/h3>\n<h4>10.0.0.52:3308  &lt;&#8212;&#8211;&gt;    10.0.0.51:3308<\/h4>\n<h5>db01<\/h5>\n<p>&nbsp;<\/p>\n<pre><code class=\"language-kotlin\" lang=\"kotlin\">mysql  -S \/data\/3308\/mysql.sock -e \"grant replication slave on *.* to repl@'10.0.0.%' identified by '123';\"\nmysql  -S \/data\/3308\/mysql.sock -e \"grant all  on *.* to root@'10.0.0.%' identified by '123'  with grant option;\"\n<\/code><\/pre>\n<h5>db02<\/h5>\n<p>&nbsp;<\/p>\n<pre><code class=\"language-kotlin\" lang=\"kotlin\">mysql  -S \/data\/3308\/mysql.sock -e \"CHANGE MASTER TO MASTER_HOST='10.0.0.51', MASTER_PORT=3308, MASTER_AUTO_POSITION=1, MASTER_USER='repl', MASTER_PASSWORD='123';\"\nmysql  -S \/data\/3308\/mysql.sock -e \"start slave;\"\nmysql  -S \/data\/3308\/mysql.sock -e \"show slave status\\G\"\n<\/code><\/pre>\n<h5>db01<\/h5>\n<p>&nbsp;<\/p>\n<pre><code class=\"language-kotlin\" lang=\"kotlin\">mysql  -S \/data\/3308\/mysql.sock -e \"CHANGE MASTER TO MASTER_HOST='10.0.0.52', MASTER_PORT=3308, MASTER_AUTO_POSITION=1, MASTER_USER='repl', MASTER_PASSWORD='123';\"\nmysql  -S \/data\/3308\/mysql.sock -e \"start slave;\"\nmysql  -S \/data\/3308\/mysql.sock -e \"show slave status\\G\"\n<\/code><\/pre>\n<h4>10.0.0.52:3310    &#8212;&#8211;&gt;       10.0.0.52:3308<\/h4>\n<h5>db02<\/h5>\n<p>&nbsp;<\/p>\n<pre><code class=\"language-kotlin\" lang=\"kotlin\">mysql  -S \/data\/3310\/mysql.sock -e \"CHANGE MASTER TO MASTER_HOST='10.0.0.52', MASTER_PORT=3308, MASTER_AUTO_POSITION=1, MASTER_USER='repl', MASTER_PASSWORD='123';\"\nmysql  -S \/data\/3310\/mysql.sock -e \"start slave;\"\nmysql  -S \/data\/3310\/mysql.sock -e \"show slave status\\G\"\n<\/code><\/pre>\n<h4>10.0.0.51:3310  &#8212;&#8211;&gt;     10.0.0.51:3308<\/h4>\n<h5>db01<\/h5>\n<p>&nbsp;<\/p>\n<pre><code class=\"language-kotlin\" lang=\"kotlin\">mysql  -S \/data\/3310\/mysql.sock -e \"CHANGE MASTER TO MASTER_HOST='10.0.0.51', MASTER_PORT=3308, MASTER_AUTO_POSITION=1, MASTER_USER='repl', MASTER_PASSWORD='123';\"\nmysql  -S \/data\/3310\/mysql.sock -e \"start slave;\"\nmysql  -S \/data\/3310\/mysql.sock -e \"show slave status\\G\"\n<\/code><\/pre>\n<h2>2.9 \u68c0\u6d4b\u4e3b\u4ece\u72b6\u6001<\/h2>\n<pre><code class=\"language-shell\" lang=\"shell\">mysql -S \/data\/3307\/mysql.sock -e \"show slave status\\G\"|grep Yes\nmysql -S \/data\/3308\/mysql.sock -e \"show slave status\\G\"|grep Yes\nmysql -S \/data\/3309\/mysql.sock -e \"show slave status\\G\"|grep Yes\nmysql -S \/data\/3310\/mysql.sock -e \"show slave status\\G\"|grep Yes\n\n\u6ce8\uff1a\u5982\u679c\u4e2d\u95f4\u51fa\u73b0\u9519\u8bef\uff0c\u5728\u6bcf\u4e2a\u8282\u70b9\u8fdb\u884c\u6267\u884c\u4ee5\u4e0b\u547d\u4ee4\nmysql -S \/data\/3307\/mysql.sock -e \"stop slave; reset slave all;\"\nmysql -S \/data\/3308\/mysql.sock -e \"stop slave; reset slave all;\"\nmysql -S \/data\/3309\/mysql.sock -e \"stop slave; reset slave all;\"\nmysql -S \/data\/3310\/mysql.sock -e \"stop slave; reset slave all;\"\n<\/code><\/pre>\n<p>&nbsp;<\/p>\n<h2>2.10 MySQL\u5206\u5e03\u5f0f\u67b6\u6784\u4ecb\u7ecd<\/h2>\n<p><img decoding=\"async\" src=\"https:\/\/\/\/upload-images.jianshu.io\/upload_images\/16956686-7c753fb3640bc0ec.png?imageMogr2\/auto-orient\/strip|imageView2\/2\/w\/475\/format\/webp\" referrerpolicy=\"no-referrer\" alt=\"img\"><\/p>\n<p>image.png<\/p>\n<p>&nbsp;<\/p>\n<pre><code class=\"language-undefined\" lang=\"undefined\">1. schema\u62c6\u5206\u53ca\u4e1a\u52a1\u5206\u5e93\n2. \u5782\u76f4\u62c6\u5206-\u5206\u5e93\u5206\u8868\n3. \u6c34\u5e73\u62c6\u5206-\u5206\u7247\uff0crange\uff0c\u53d6\u6a21\uff0c\u679a\u4e3e\uff0chash\uff0c\u65f6\u95f4\u7b49\u7b49\n\n<\/code><\/pre>\n<h2>2.11 \u4f01\u4e1a\u4ee3\u8868\u4ea7\u54c1<\/h2>\n<p>&nbsp;<\/p>\n<pre><code class=\"language-undefined\" lang=\"undefined\">360 Atlas-Sharding\nAlibaba  cobar \nMycat\nTDDL\nHeisenberg\nOceanus\nVitess\nOneProxy \nDRDS\n<\/code><\/pre>\n<h1>3. MyCAT\u5b89\u88c5<\/h1>\n<h2>3.1 \u9884\u5148\u5b89\u88c5Java\u8fd0\u884c\u73af\u5883<\/h2>\n<p>&nbsp;<\/p>\n<pre><code class=\"language-undefined\" lang=\"undefined\">yum install -y java\n<\/code><\/pre>\n<h2>3.2\u4e0b\u8f7d<\/h2>\n<p>&nbsp;<\/p>\n<pre><code class=\"language-cpp\" lang=\"cpp\">Mycat-server-xxxxx.linux.tar.gz\nhttp:\/\/dl.mycat.io\/\n<\/code><\/pre>\n<h2>3.3 \u89e3\u538b\u6587\u4ef6<\/h2>\n<p>&nbsp;<\/p>\n<pre><code class=\"language-css\" lang=\"css\">tar xf Mycat-server-1.6.5-release-20180122220033-linux.tar.gz\n<\/code><\/pre>\n<h2>3.4 \u8f6f\u4ef6\u76ee\u5f55\u7ed3\u6784<\/h2>\n<p>&nbsp;<\/p>\n<pre><code class=\"language-css\" lang=\"css\">ls\nbin  catlet  conf  lib  logs  version.txt\n<\/code><\/pre>\n<h2>3.5 \u542f\u52a8\u548c\u8fde\u63a5<\/h2>\n<p>&nbsp;<\/p>\n<pre><code class=\"language-shell\" lang=\"shell\">\u914d\u7f6e\u73af\u5883\u53d8\u91cf\nvim \/etc\/profile\nexport PATH=\/application\/mycat\/bin:$PATH\nsource \/etc\/profile\n\u542f\u52a8\nmycat start\n\u8fde\u63a5mycat\uff1a\nmysql -uroot -p123456 -h 127.0.0.1 -P8066\n<\/code><\/pre>\n<h1>4. \u914d\u7f6e\u6587\u4ef6\u4ecb\u7ecd<\/h1>\n<p>&nbsp;<\/p>\n<pre><code class=\"language-css\" lang=\"css\">logs\u76ee\u5f55:\nwrapper.log       ----&gt;mycat\u542f\u52a8\u65e5\u5fd7\nmycat.log         ----&gt;mycat\u8be6\u7ec6\u5de5\u4f5c\u65e5\u5fd7\nconf\u76ee\u5f55:\nschema.xml      \n\u4e3b\u914d\u7f6e\u6587\u4ef6\uff08\u8bfb\u5199\u5206\u79bb\u3001\u9ad8\u53ef\u7528\u3001\u5206\u5e03\u5f0f\u7b56\u7565\u5b9a\u5236\u3001\u8282\u70b9\u63a7\u5236\uff09\nserver.xml\nmycat\u8f6f\u4ef6\u672c\u8eab\u76f8\u5173\u7684\u914d\u7f6e\nrule.xml \n\u5206\u7247\u89c4\u5219\u914d\u7f6e\u6587\u4ef6,\u8bb0\u5f55\u5206\u7247\u89c4\u5219\u5217\u8868\u3001\u4f7f\u7528\u65b9\u6cd5\u7b49\n<\/code><\/pre>\n<h1>5.\u5e94\u7528\u524d\u73af\u5883\u51c6\u5907<\/h1>\n<h2>5.1 \u7528\u6237\u521b\u5efa\u53ca\u6570\u636e\u5e93\u5bfc\u5165<\/h2>\n<p>&nbsp;<\/p>\n<pre><code class=\"language-kotlin\" lang=\"kotlin\">db01:\nmysql -S \/data\/3307\/mysql.sock \ngrant all on *.* to root@'10.0.0.%' identified by '123';\nsource \/root\/ocp.sql\n\nmysql -S \/data\/3308\/mysql.sock \ngrant all on *.* to root@'10.0.0.%' identified by '123';\nsource \/root\/world.sql\n<\/code><\/pre>\n<h2>5.2 \u914d\u7f6e\u6587\u4ef6\u5904\u7406<\/h2>\n<p>&nbsp;<\/p>\n<pre><code class=\"language-xml\" lang=\"xml\">cd \/application\/mycat\/conf\n\nmv schema.xml schema.xml.bak\n\nvim schema.xml \n\n&lt;?xml version=\"1.0\"?&gt;  \n&lt;!DOCTYPE mycat:schema SYSTEM \"schema.dtd\"&gt;  \n&lt;mycat:schema xmlns:mycat=\"http:\/\/io.mycat\/\"&gt;\n&lt;schema name=\"TESTDB\" checkSQLschema=\"false\" sqlMaxLimit=\"100\" dataNode=\"dn1\"&gt; \n&lt;\/schema&gt;  \n    &lt;dataNode name=\"dn1\" dataHost=\"localhost1\" database= \"wordpress\" \/&gt;  \n    &lt;dataHost name=\"localhost1\" maxCon=\"1000\" minCon=\"10\" balance=\"1\"  writeType=\"0\" dbType=\"mysql\"  dbDriver=\"native\" switchType=\"1\"&gt; \n        &lt;heartbeat&gt;select user()&lt;\/heartbeat&gt;  \n    &lt;writeHost host=\"db1\" url=\"10.0.0.51:3307\" user=\"root\" password=\"123\"&gt; \n            &lt;readHost host=\"db2\" url=\"10.0.0.51:3309\" user=\"root\" password=\"123\" \/&gt; \n    &lt;\/writeHost&gt; \n    &lt;\/dataHost&gt;  \n&lt;\/mycat:schema&gt;\n<\/code><\/pre>\n<h1>6. \u914d\u7f6e\u6587\u4ef6\u7b80\u5355\u4ecb\u7ecd<\/h1>\n<h2>6.1 \u903b\u8f91\u5e93\uff1aschema<\/h2>\n<p>&nbsp;<\/p>\n<pre><code class=\"language-xml\" lang=\"xml\">&lt;schema name=\"TESTDB\" checkSQLschema=\"false\" sqlMaxLimit=\"100\" dataNode=\"dn1\"&gt; \n&lt;\/schema&gt;  \n<\/code><\/pre>\n<h2>6.2 \u6570\u636e\u8282\u70b9:datanode<\/h2>\n<p>&nbsp;<\/p>\n<pre><code class=\"language-xml\" lang=\"xml\">&lt;dataNode name=\"dn1\" dataHost=\"localhost1\" database= \"world\" \/&gt;  \n<\/code><\/pre>\n<h2>6.3 \u6570\u636e\u4e3b\u673a\uff1adatahost(w\u548cr)<\/h2>\n<p>&nbsp;<\/p>\n<pre><code class=\"language-xml\" lang=\"xml\">&lt;dataHost name=\"localhost1\" maxCon=\"1000\" minCon=\"10\" balance=\"1\"  writeType=\"0\" dbType=\"mysql\"  dbDriver=\"native\" switchType=\"1\"&gt; \n        &lt;heartbeat&gt;select user()&lt;\/heartbeat&gt;  \n    &lt;writeHost host=\"db1\" url=\"10.0.0.51:3307\" user=\"root\" password=\"123\"&gt; \n            &lt;readHost host=\"db2\" url=\"10.0.0.52:3309\" user=\"root\" password=\"123\" \/&gt; \n    &lt;\/writeHost&gt; \n    &lt;\/dataHost&gt;  \n<\/code><\/pre>\n<h1>7. \u8bfb\u5199\u5206\u79bb\u7ed3\u6784\u914d\u7f6e<\/h1>\n<p>&nbsp;<\/p>\n<pre><code class=\"language-xml\" lang=\"xml\">vim schema.xml \n\n&lt;?xml version=\"1.0\"?&gt;\n&lt;!DOCTYPE mycat:schema SYSTEM \"schema.dtd\"&gt;  \n&lt;mycat:schema xmlns:mycat=\"http:\/\/io.mycat\/\"&gt;\n&lt;schema name=\"TESTDB\" checkSQLschema=\"false\" sqlMaxLimit=\"100\" dataNode=\"sh1\"&gt; \n&lt;\/schema&gt;  \n        &lt;dataNode name=\"sh1\" dataHost=\"oldguo1\" database= \"world\" \/&gt;         \n        &lt;dataHost name=\"oldguo1\" maxCon=\"1000\" minCon=\"10\" balance=\"1\"  writeType=\"0\" dbType=\"mysql\"  dbDriver=\"native\" switchType=\"1\"&gt;    \n                &lt;heartbeat&gt;select user()&lt;\/heartbeat&gt;  \n        &lt;writeHost host=\"db1\" url=\"10.0.0.51:3307\" user=\"root\" password=\"123\"&gt; \n                        &lt;readHost host=\"db2\" url=\"10.0.0.51:3309\" user=\"root\" password=\"123\" \/&gt; \n        &lt;\/writeHost&gt; \n        &lt;\/dataHost&gt;  \n&lt;\/mycat:schema&gt;\n\n\u91cd\u542fmycat\nmycat restart\n\n\u8bfb\u5199\u5206\u79bb\u6d4b\u8bd5\n mysql -uroot -p -h 127.0.0.1 -P8066\n show variables like 'server_id';\n begin;\n show variables like 'server_id';\n\n\u603b\u7ed3\uff1a \n\u4ee5\u4e0a\u6848\u4f8b\u5b9e\u73b0\u4e861\u4e3b1\u4ece\u7684\u8bfb\u5199\u5206\u79bb\u529f\u80fd\uff0c\u5199\u64cd\u4f5c\u843d\u5230\u4e3b\u5e93\uff0c\u8bfb\u64cd\u4f5c\u843d\u5230\u4ece\u5e93.\u5982\u679c\u4e3b\u5e93\u5b95\u673a\uff0c\u4ece\u5e93\u4e0d\u80fd\u5728\u7ee7\u7eed\u63d0\u4f9b\u670d\u52a1\u4e86\u3002\n<\/code><\/pre>\n<h1>8. \u914d\u7f6e\u8bfb\u5199\u5206\u79bb\u53ca\u9ad8\u53ef\u7528<\/h1>\n<p>&nbsp;<\/p>\n<pre><code class=\"language-xml\" lang=\"xml\">[root@db01 conf]# mv schema.xml schema.xml.rw\n[root@db01 conf]# vim schema.xml\n\n&lt;?xml version=\"1.0\"?&gt;  \n&lt;!DOCTYPE mycat:schema SYSTEM \"schema.dtd\"&gt;  \n&lt;mycat:schema xmlns:mycat=\"http:\/\/io.mycat\/\"&gt;\n&lt;schema name=\"TESTDB\" checkSQLschema=\"false\" sqlMaxLimit=\"100\" dataNode=\"sh1\"&gt; \n&lt;\/schema&gt;  \n    &lt;dataNode name=\"sh1\" dataHost=\"oldguo1\" database= \"ocp\" \/&gt;  \n    &lt;dataHost name=\"oldguo1\" maxCon=\"1000\" minCon=\"10\" balance=\"1\"  writeType=\"0\" dbType=\"mysql\"  dbDriver=\"native\" switchType=\"1\"&gt; \n        &lt;heartbeat&gt;select user()&lt;\/heartbeat&gt;  \n    &lt;writeHost host=\"db1\" url=\"10.0.0.51:3307\" user=\"root\" password=\"123\"&gt; \n            &lt;readHost host=\"db2\" url=\"10.0.0.51:3309\" user=\"root\" password=\"123\" \/&gt; \n    &lt;\/writeHost&gt; \n    &lt;writeHost host=\"db3\" url=\"10.0.0.52:3307\" user=\"root\" password=\"123\"&gt; \n            &lt;readHost host=\"db4\" url=\"10.0.0.52:3309\" user=\"root\" password=\"123\" \/&gt; \n    &lt;\/writeHost&gt;        \n    &lt;\/dataHost&gt;  \n&lt;\/mycat:schema&gt;\n\n\u7b2c\u4e00\u4e2awriteHost: 10.0.0.51:3307\t\u771f\u6b63\u7684\u5199\u8282\u70b9,\u8d1f\u8d23\u5199\u64cd\u4f5c\n\u7b2c\u4e8c\u4e2awriteHost: 10.0.0.52:3307\tstandby\u51c6\u5907\u5199\u8282\u70b9\uff0c\u8d1f\u8d23\u8bfb,\u5f5310.0.0.51:3307\u5b95\u6389,\u4f1a\u5207\u6362\u4e3a\u771f\u6b63\u7684\u5199\u8282\u70b9\n\n\u5f53\u5199\u8282\u70b9\u5b95\u673a\u540e\uff0c\u540e\u9762\u8ddf\u7684readhost\u4e5f\u4e0d\u63d0\u4f9b\u670d\u52a1\uff0c\u8fd9\u65f6\u5019standby\u7684writehost\u5c31\u63d0\u4f9b\u5199\u670d\u52a1\uff0c\n\u540e\u9762\u8ddf\u7684readhost\u63d0\u4f9b\u8bfb\u670d\u52a1\n\n\u6d4b\u8bd5\uff1a\nmysql -uroot -p123456 -h 127.0.0.1 -P 8066\nshow variables like 'server_id';\n\u8bfb\u5199\u5206\u79bb\u6d4b\u8bd5\n mysql -uroot -p -h 127.0.0.1 -P8066\n show variables like 'server_id';\n show variables like 'server_id';\n show variables like 'server_id';\n begin;\n show variables like 'server_id';\n \u5bf9db01 3307\u8282\u70b9\u8fdb\u884c\u5173\u95ed\u548c\u542f\u52a8,\u6d4b\u8bd5\u8bfb\u5199\u64cd\u4f5c\n \n<\/code><\/pre>\n<h1>9. \u914d\u7f6e\u4e2d\u7684\u5c5e\u6027\u4ecb\u7ecd:<\/h1>\n<h2>balance\u5c5e\u6027<\/h2>\n<p>&nbsp;<\/p>\n<pre><code class=\"language-csharp\" lang=\"csharp\">\u8d1f\u8f7d\u5747\u8861\u7c7b\u578b\uff0c\u76ee\u524d\u7684\u53d6\u503c\u67093\u79cd\uff1a \n1. balance=\"0\", \u4e0d\u5f00\u542f\u8bfb\u5199\u5206\u79bb\u673a\u5236\uff0c\u6240\u6709\u8bfb\u64cd\u4f5c\u90fd\u53d1\u9001\u5230\u5f53\u524d\u53ef\u7528\u7684writeHost\u4e0a\u3002 \n2. balance=\"1\"\uff0c\u5168\u90e8\u7684readHost\u4e0estandby writeHost\u53c2\u4e0eselect\u8bed\u53e5\u7684\u8d1f\u8f7d\u5747\u8861\uff0c\u7b80\u5355\u7684\u8bf4\uff0c\n  \u5f53\u53cc\u4e3b\u53cc\u4ece\u6a21\u5f0f(M1-&gt;S1\uff0cM2-&gt;S2\uff0c\u5e76\u4e14M1\u4e0e M2\u4e92\u4e3a\u4e3b\u5907)\uff0c\u6b63\u5e38\u60c5\u51b5\u4e0b\uff0cM2,S1,S2\u90fd\u53c2\u4e0eselect\u8bed\u53e5\u7684\u8d1f\u8f7d\u5747\u8861\u3002 \n3. balance=\"2\"\uff0c\u6240\u6709\u8bfb\u64cd\u4f5c\u90fd\u968f\u673a\u7684\u5728writeHost\u3001readhost\u4e0a\u5206\u53d1\u3002\n<\/code><\/pre>\n<h2>writeType\u5c5e\u6027<\/h2>\n<p>&nbsp;<\/p>\n<pre><code class=\"language-ruby\" lang=\"ruby\">\u8d1f\u8f7d\u5747\u8861\u7c7b\u578b\uff0c\u76ee\u524d\u7684\u53d6\u503c\u67092\u79cd\uff1a \n1. writeType=\"0\", \u6240\u6709\u5199\u64cd\u4f5c\u53d1\u9001\u5230\u914d\u7f6e\u7684\u7b2c\u4e00\u4e2awriteHost\uff0c\n\u7b2c\u4e00\u4e2a\u6302\u4e86\u5207\u5230\u8fd8\u751f\u5b58\u7684\u7b2c\u4e8c\u4e2awriteHost\uff0c\u91cd\u65b0\u542f\u52a8\u540e\u5df2\u5207\u6362\u540e\u7684\u4e3a\u4e3b\uff0c\u5207\u6362\u8bb0\u5f55\u5728\u914d\u7f6e\u6587\u4ef6\u4e2d:dnindex.properties . \n2. writeType=\u201c1\u201d\uff0c\u6240\u6709\u5199\u64cd\u4f5c\u90fd\u968f\u673a\u7684\u53d1\u9001\u5230\u914d\u7f6e\u7684writeHost\uff0c\u4f46\u4e0d\u63a8\u8350\u4f7f\u7528\n<\/code><\/pre>\n<h2>switchType\u5c5e\u6027<\/h2>\n<p>&nbsp;<\/p>\n<pre><code class=\"language-dart\" lang=\"dart\">-1 \u8868\u793a\u4e0d\u81ea\u52a8\u5207\u6362 \n1 \u9ed8\u8ba4\u503c\uff0c\u81ea\u52a8\u5207\u6362 \n2 \u57fa\u4e8eMySQL\u4e3b\u4ece\u540c\u6b65\u7684\u72b6\u6001\u51b3\u5b9a\u662f\u5426\u5207\u6362 \uff0c\u5fc3\u8df3\u8bed\u53e5\u4e3a show slave status \n<\/code><\/pre>\n<h2>datahost\u5176\u4ed6\u914d\u7f6e<\/h2>\n<p>&nbsp;<\/p>\n<pre><code class=\"language-csharp\" lang=\"csharp\">&lt;dataHost name=\"localhost1\" maxCon=\"1000\" minCon=\"10\" balance=\"1\"  writeType=\"0\" dbType=\"mysql\"  dbDriver=\"native\" switchType=\"1\"&gt; \n\nmaxCon=\"1000\"\uff1a\u6700\u5927\u7684\u5e76\u53d1\u8fde\u63a5\u6570\nminCon=\"10\" \uff1amycat\u5728\u542f\u52a8\u4e4b\u540e\uff0c\u4f1a\u5728\u540e\u7aef\u8282\u70b9\u4e0a\u81ea\u52a8\u5f00\u542f\u7684\u8fde\u63a5\u7ebf\u7a0b\ntempReadHostAvailable=\"1\"\n\u8fd9\u4e2a\u4e00\u4e3b\u4e00\u4ece\u65f6\uff081\u4e2awritehost\uff0c1\u4e2areadhost\u65f6\uff09\uff0c\u53ef\u4ee5\u5f00\u542f\u8fd9\u4e2a\u53c2\u6570\uff0c\u5982\u679c2\u4e2awritehost\uff0c2\u4e2areadhost\u65f6\n&lt;heartbeat&gt;select user()&lt;\/heartbeat&gt;  \u76d1\u6d4b\u5fc3\u8df3\n<\/code><\/pre>\n<h1>10. \u5782\u76f4\u5206\u8868<\/h1>\n<p><img decoding=\"async\" src=\"https:\/\/\/\/upload-images.jianshu.io\/upload_images\/16956686-c188becb93fdef0f.png?imageMogr2\/auto-orient\/strip|imageView2\/2\/w\/1059\/format\/webp\" referrerpolicy=\"no-referrer\" alt=\"img\"><\/p>\n<p>image.png<\/p>\n<p>&nbsp;<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/\/\/upload-images.jianshu.io\/upload_images\/16956686-96987959032a94c2.png?imageMogr2\/auto-orient\/strip|imageView2\/2\/w\/1063\/format\/webp\" referrerpolicy=\"no-referrer\" alt=\"img\"><\/p>\n<p>image.png<\/p>\n<p>&nbsp;<\/p>\n<pre><code class=\"language-xml\" lang=\"xml\">mv  schema.xml  schema.xml.ha \n\nvim schema.xml\n\n&lt;?xml version=\"1.0\"?&gt;\n&lt;!DOCTYPE mycat:schema SYSTEM \"schema.dtd\"&gt;\n&lt;mycat:schema xmlns:mycat=\"http:\/\/io.mycat\/\"&gt;\n&lt;schema name=\"TESTDB\" checkSQLschema=\"false\" sqlMaxLimit=\"100\" dataNode=\"sh1\"&gt;\n        &lt;table name=\"user\" dataNode=\"sh1\"\/&gt;\n        &lt;table name=\"order\" dataNode=\"sh2\"\/&gt;\n&lt;\/schema&gt;\n    &lt;dataNode name=\"sh1\" dataHost=\"oldguo1\" database= \"ocp\" \/&gt;\n    &lt;dataNode name=\"sh2\" dataHost=\"oldguo2\" database= \"ocp\" \/&gt;\n    &lt;dataHost name=\"oldguo1\" maxCon=\"1000\" minCon=\"10\" balance=\"1\"  writeType=\"0\" dbType=\"mysql\"  dbDriver=\"native\" switchType=\"1\"&gt;\n        &lt;heartbeat&gt;select user()&lt;\/heartbeat&gt;\n    &lt;writeHost host=\"db1\" url=\"10.0.0.51:3307\" user=\"root\" password=\"123\"&gt;\n            &lt;readHost host=\"db2\" url=\"10.0.0.51:3309\" user=\"root\" password=\"123\" \/&gt;\n    &lt;\/writeHost&gt;\n    &lt;writeHost host=\"db3\" url=\"10.0.0.52:3307\" user=\"root\" password=\"123\"&gt;\n            &lt;readHost host=\"db4\" url=\"10.0.0.52:3309\" user=\"root\" password=\"123\" \/&gt;\n    &lt;\/writeHost&gt;\n    &lt;\/dataHost&gt;\n    &lt;dataHost name=\"oldguo2\" maxCon=\"1000\" minCon=\"10\" balance=\"1\"  writeType=\"0\" dbType=\"mysql\"  dbDriver=\"native\" switchType=\"1\"&gt;\n        &lt;heartbeat&gt;select user()&lt;\/heartbeat&gt;\n    &lt;writeHost host=\"db1\" url=\"10.0.0.51:3308\" user=\"root\" password=\"123\"&gt;\n            &lt;readHost host=\"db2\" url=\"10.0.0.51:3310\" user=\"root\" password=\"123\" \/&gt;\n    &lt;\/writeHost&gt;\n    &lt;writeHost host=\"db3\" url=\"10.0.0.52:3308\" user=\"root\" password=\"123\"&gt;\n            &lt;readHost host=\"db4\" url=\"10.0.0.52:3310\" user=\"root\" password=\"123\" \/&gt;\n    &lt;\/writeHost&gt;\n    &lt;\/dataHost&gt;\n&lt;\/mycat:schema&gt;\n\n\u521b\u5efa\u6d4b\u8bd5\u5e93\u548c\u8868:\n[root@db01 conf]# mysql -S \/data\/3307\/mysql.sock -e \"create database taobao charset utf8;\"\n[root@db01 conf]# mysql -S \/data\/3308\/mysql.sock -e \"create database taobao charset utf8;\"\n[root@db01 conf]# mysql -S \/data\/3307\/mysql.sock -e \"use taobao;create table user(id int,name varchar(20))\";\n[root@db01 conf]# mysql -S \/data\/3308\/mysql.sock -e \"use taobao;create table order_t(id int,name varchar(20))\"\n\n\n\n<\/code><\/pre>\n<h1>11. MyCAT\u6838\u5fc3\u7279\u6027\u2014\u2014\u5206\u7247\uff08\u6c34\u5e73\u62c6\u5206\uff09<\/h1>\n<p>&nbsp;<\/p>\n<pre><code class=\"language-shell\" lang=\"shell\">\u5206\u7247\uff1a\u5bf9\u4e00\u4e2a\"bigtable\"\uff0c\u6bd4\u5982\u8bf4t3\u8868\n\n(1)\u884c\u6570\u975e\u5e38\u591a\uff0c800w\n(2)\u8bbf\u95ee\u975e\u5e38\u9891\u7e41\n\n\u5206\u7247\u7684\u76ee\u7684\uff1a\n\uff081\uff09\u5c06\u5927\u6570\u636e\u91cf\u8fdb\u884c\u5206\u5e03\u5b58\u50a8\n\uff082\uff09\u63d0\u4f9b\u5747\u8861\u7684\u8bbf\u95ee\u8def\u7531\n\n\u5206\u7247\u7b56\u7565\uff1a\n\u8303\u56f4 range  800w  1-400w 400w01-800w\n\u53d6\u6a21 mod    \u53d6\u4f59\u6570\n\u679a\u4e3e \n\u54c8\u5e0c hash \n\u65f6\u95f4 \u6d41\u6c34\n\n\u4f18\u5316\u5173\u8054\u67e5\u8be2\n\u5168\u5c40\u8868\nER\u5206\u7247\n<\/code><\/pre>\n<h1>12 .\u8303\u56f4\u5206\u7247<\/h1>\n<p><img decoding=\"async\" src=\"https:\/\/\/\/upload-images.jianshu.io\/upload_images\/16956686-71a4dc83c387d7b0.png?imageMogr2\/auto-orient\/strip|imageView2\/2\/w\/933\/format\/webp\" referrerpolicy=\"no-referrer\" alt=\"img\"><\/p>\n<p>image.png<\/p>\n<p>&nbsp;<\/p>\n<pre><code class=\"language-csharp\" lang=\"csharp\">\u6bd4\u5982\u8bf4t3\u8868\n(1)\u884c\u6570\u975e\u5e38\u591a\uff0c2000w\uff081-1000w:sh1   1000w01-2000w:sh2\uff09\n(2)\u8bbf\u95ee\u975e\u5e38\u9891\u7e41\uff0c\u7528\u6237\u8bbf\u95ee\u8f83\u79bb\u6563\nmv schema.xml schema.xml.1  \nvim schema.xml\n&lt;schema name=\"TESTDB\" checkSQLschema=\"false\" sqlMaxLimit=\"100\" dataNode=\"sh1\"&gt; \n        &lt;table name=\"t3\" dataNode=\"sh1,sh2\" rule=\"auto-sharding-long\" \/&gt;\n&lt;\/schema&gt;  \n    &lt;dataNode name=\"sh1\" dataHost=\"oldguo1\" database= \"taobao\" \/&gt; \n    &lt;dataNode name=\"sh2\" dataHost=\"oldguo2\" database= \"taobao\" \/&gt;  \n\nvim rule.xml\n&lt;tableRule name=\"auto-sharding-long\"&gt;\n                &lt;rule&gt;\n                        &lt;columns&gt;id&lt;\/columns&gt;\n                        &lt;algorithm&gt;rang-long&lt;\/algorithm&gt;\n                &lt;\/rule&gt;             \n&lt;function name=\"rang-long\"\n    class=\"io.mycat.route.function.AutoPartitionByLong\"&gt;\n    &lt;property name=\"mapFile\"&gt;autopartition-long.txt&lt;\/property&gt;\n&lt;\/function&gt;\n===================================         \nvim autopartition-long.txt\n0-10=0\t------&gt;  0&lt;x&lt;=10\n11-20=1\t------&gt;  10&lt;x&lt;=20\n\n\u521b\u5efa\u6d4b\u8bd5\u8868\uff1a\nmysql -S \/data\/3307\/mysql.sock -e \"use taobao;create table t3 (id int not null primary key auto_increment,name varchar(20) not null);\"\n\nmysql -S \/data\/3308\/mysql.sock  -e \"use taobao;create table t3 (id int not null primary key auto_increment,name varchar(20) not null);\"\n\n\u6d4b\u8bd5\uff1a\n\u91cd\u542fmycat\nmycat restart\nmysql -uroot -p123456 -h 127.0.0.1 -P 8066\ninsert into t3(id,name) values(1,'a');\ninsert into t3(id,name) values(2,'b');\ninsert into t3(id,name) values(3,'c');\ninsert into t3(id,name) values(4,'d');\ninsert into t3(id,name) values(10,'aa');\ninsert into t3(id,name) values(11,'aa');\ninsert into t3(id,name) values(12,'bb');\ninsert into t3(id,name) values(13,'cc');\ninsert into t3(id,name) values(14,'dd');\ninsert into t3(id,name) values(20,'dd');\n<\/code><\/pre>\n<h1>13. \u53d6\u6a21\u5206\u7247\uff08mod-long\uff09\uff1a<\/h1>\n<p>&nbsp;<\/p>\n<pre><code class=\"language-csharp\" lang=\"csharp\">\u53d6\u4f59\u5206\u7247\u65b9\u5f0f\uff1a\u5206\u7247\u952e\uff08\u4e00\u4e2a\u5217\uff09\u4e0e\u8282\u70b9\u6570\u91cf\u8fdb\u884c\u53d6\u4f59\uff0c\u5f97\u5230\u4f59\u6570\uff0c\u5c06\u6570\u636e\u5199\u5165\u5bf9\u5e94\u8282\u70b9\nvim schema.xml\n&lt;table name=\"t4\" dataNode=\"sh1,sh2\" rule=\"mod-long\" \/&gt;\nvim rule.xml\n&lt;property name=\"count\"&gt;2&lt;\/property&gt;\n\n\u51c6\u5907\u6d4b\u8bd5\u73af\u5883\n     \n\u521b\u5efa\u6d4b\u8bd5\u8868\uff1a\nmysql -S \/data\/3307\/mysql.sock -e \"use taobao;create table t4 (id int not null primary key auto_increment,name varchar(20) not null);\"\nmysql -S \/data\/3308\/mysql.sock -e \"use taobao;create table t4 (id int not null primary key auto_increment,name varchar(20) not null);\"\n\n\u91cd\u542fmycat \nmycat restart \n\n\u6d4b\u8bd5\uff1a \nmysql -uroot -p123456 -h10.0.0.51 -P8066\n\nuse TESTDB\ninsert into t4(id,name) values(1,'a');\ninsert into t4(id,name) values(2,'b');\ninsert into t4(id,name) values(3,'c');\ninsert into t4(id,name) values(4,'d');\n\n\u5206\u522b\u767b\u5f55\u540e\u7aef\u8282\u70b9\u67e5\u8be2\u6570\u636e\nmysql -S \/data\/3307\/mysql.sock -e \"select * from taobao.t4;\"\n\nmysql -S \/data\/3308\/mysql.sock -e \"select * from taobao.t4;\"\n<\/code><\/pre>\n<h1>14. \u679a\u4e3e\u5206\u7247<\/h1>\n<p>&nbsp;<\/p>\n<pre><code class=\"language-csharp\" lang=\"csharp\">t5 \u8868\nid name telnum\n1   bj   1212\n2   sh   22222\n3   bj   3333\n4   sh   44444\n5   bj   5555\n\nsharding-by-intfile\nvim schema.xml\n&lt;table name=\"t5\" dataNode=\"sh1,sh2\" rule=\"sharding-by-intfile\" \/&gt;\n\nvim rule.xml\n&lt;tableRule name=\"sharding-by-intfile\"&gt; \n&lt;rule&gt; &lt;columns&gt;name&lt;\/columns&gt; \n&lt;algorithm&gt;hash-int&lt;\/algorithm&gt; \n&lt;\/rule&gt; \n&lt;\/tableRule&gt; \n\n&lt;function name=\"hash-int\" class=\"org.opencloudb.route.function.PartitionByFileMap\"&gt; \n&lt;property name=\"mapFile\"&gt;partition-hash-int.txt&lt;\/property&gt; \n  &lt;property name=\"type\"&gt;1&lt;\/property&gt;\n                &lt;property name=\"defaultNode\"&gt;0&lt;\/property&gt;\n&lt;\/function&gt; \n\npartition-hash-int.txt \u914d\u7f6e\uff1a \nbj=0 \nsh=1\nDEFAULT_NODE=1 \ncolumns \u6807\u8bc6\u5c06\u8981\u5206\u7247\u7684\u8868\u5b57\u6bb5\uff0calgorithm \u5206\u7247\u51fd\u6570\uff0c \u5176\u4e2d\u5206\u7247\u51fd\u6570\u914d\u7f6e\u4e2d\uff0cmapFile\u6807\u8bc6\u914d\u7f6e\u6587\u4ef6\u540d\u79f0\n\n\u51c6\u5907\u6d4b\u8bd5\u73af\u5883\nmysql -S \/data\/3307\/mysql.sock -e \"use taobao;create table t5 (id int not null primary key auto_increment,name varchar(20) not null);\"\n\nmysql -S \/data\/3308\/mysql.sock -e \"use taobao;create table t5 (id int not null primary key auto_increment,name varchar(20) not null);\"\n\u91cd\u542fmycat \nmycat restart \nmysql -uroot -p123456 -h10.0.0.51 -P8066\nuse TESTDB\ninsert into t5(id,name) values(1,'bj');\ninsert into t5(id,name) values(2,'sh');\ninsert into t5(id,name) values(3,'bj');\ninsert into t5(id,name) values(4,'sh');\ninsert into t5(id,name) values(5,'tj');\n\n\u5206\u522b\u767b\u5f55\u540e\u7aef\u8282\u70b9\u67e5\u8be2\u6570\u636e\nmysql -S \/data\/3307\/mysql.sock -e \"select * from taobao.t5;\"\n\nmysql -S \/data\/3308\/mysql.sock -e \"select * from taobao.t5;\"\n<\/code><\/pre>\n<h1>15 .  Mycat\u5168\u5c40\u8868<\/h1>\n<p>&nbsp;<\/p>\n<pre><code class=\"language-csharp\" lang=\"csharp\">a   b   c  d   \njoin \nt \n\nselect  t1.name   ,t.x  from  t1 \njoin t \nselect  t2.name   ,t.x  from  t2 \njoin t \nselect  t3.name   ,t.x  from  t3 \njoin t \n\n\u4f7f\u7528\u573a\u666f\uff1a\n\u5982\u679c\u4f60\u7684\u4e1a\u52a1\u4e2d\u6709\u4e9b\u6570\u636e\u7c7b\u4f3c\u4e8e\u6570\u636e\u5b57\u5178\uff0c\u6bd4\u5982\u914d\u7f6e\u6587\u4ef6\u7684\u914d\u7f6e\uff0c\n\u5e38\u7528\u4e1a\u52a1\u7684\u914d\u7f6e\u6216\u8005\u6570\u636e\u91cf\u4e0d\u5927\u5f88\u5c11\u53d8\u52a8\u7684\u8868\uff0c\u8fd9\u4e9b\u8868\u5f80\u5f80\u4e0d\u662f\u7279\u522b\u5927\uff0c\n\u800c\u4e14\u5927\u90e8\u5206\u7684\u4e1a\u52a1\u573a\u666f\u90fd\u4f1a\u7528\u5230\uff0c\u90a3\u4e48\u8fd9\u79cd\u8868\u9002\u5408\u4e8eMycat\u5168\u5c40\u8868\uff0c\u65e0\u987b\u5bf9\u6570\u636e\u8fdb\u884c\u5207\u5206\uff0c\n\u8981\u5728\u6240\u6709\u7684\u5206\u7247\u4e0a\u4fdd\u5b58\u4e00\u4efd\u6570\u636e\u5373\u53ef\uff0cMycat \u5728Join\u64cd\u4f5c\u4e2d\uff0c\u4e1a\u52a1\u8868\u4e0e\u5168\u5c40\u8868\u8fdb\u884cJoin\u805a\u5408\u4f1a\u4f18\u5148\u9009\u62e9\u76f8\u540c\u5206\u7247\u5185\u7684\u5168\u5c40\u8868join\uff0c\n\u907f\u514d\u8de8\u5e93Join\uff0c\u5728\u8fdb\u884c\u6570\u636e\u63d2\u5165\u64cd\u4f5c\u65f6\uff0cmycat\u5c06\u628a\u6570\u636e\u5206\u53d1\u5230\u5168\u5c40\u8868\u5bf9\u5e94\u7684\u6240\u6709\u5206\u7247\u6267\u884c\uff0c\u5728\u8fdb\u884c\u6570\u636e\u8bfb\u53d6\u65f6\u5019\u5c06\u4f1a\u968f\u673a\u83b7\u53d6\u4e00\u4e2a\u8282\u70b9\u8bfb\u53d6\u6570\u636e\u3002 \n\nvim schema.xml \n&lt;table name=\"t_area\" primaryKey=\"id\"  type=\"global\" dataNode=\"sh1,sh2\" \/&gt; \n\n\u540e\u7aef\u6570\u636e\u51c6\u5907\nmysql -S \/data\/3307\/mysql.sock \nuse taobao\ncreate table t_area (id int not null primary key auto_increment,name varchar(20) not null);\n\nmysql -S \/data\/3308\/mysql.sock \nuse taobao\ncreate table t_area  (id int not null primary key auto_increment,name varchar(20) not null);\n\n\u91cd\u542fmycat \nmycat restart \n\n\u6d4b\u8bd5\uff1a \nmysql -uroot -p123456 -h10.0.0.52 -P8066\n\nuse TESTDB\ninsert into t_area(id,name) values(1,'a');\ninsert into t_area(id,name) values(2,'b');\ninsert into t_area(id,name) values(3,'c');\ninsert into t_area(id,name) values(4,'d');\n<\/code><\/pre>\n<h1>16. E-R\u5206\u7247<\/h1>\n<p>&nbsp;<\/p>\n<pre><code class=\"language-csharp\" lang=\"csharp\">A \njoin \nB  \n\u4e3a\u4e86\u9632\u6b62\u8de8\u5206\u7247join\uff0c\u53ef\u4ee5\u4f7f\u7528E-R\u6a21\u5f0f\nA   join   B\non  a.xx=b.yy\njoin C\non A.id=C.id\n&lt;table name=\"A\" dataNode=\"sh1,sh2\" rule=\"mod-long\"&gt; \n       &lt;childTable name=\"B\" joinKey=\"yy\" parentKey=\"xx\" \/&gt; \n&lt;\/table&gt; \n<\/code><\/pre>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u5206\u5e03\u5f0f\u67b6\u6784-MyCAT 1. MyCAT\u57fa\u7840\u67b6\u6784\u56fe image.png 2. MyCAT\u57fa\u7840\u67b6\u6784\u51c6\u5907 2.1  [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[6],"tags":[],"class_list":["post-87","post","type-post","status-publish","format-standard","hentry","category-mysql"],"_links":{"self":[{"href":"https:\/\/www.daishen.ltd\/index.php?rest_route=\/wp\/v2\/posts\/87","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.daishen.ltd\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.daishen.ltd\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.daishen.ltd\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.daishen.ltd\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=87"}],"version-history":[{"count":1,"href":"https:\/\/www.daishen.ltd\/index.php?rest_route=\/wp\/v2\/posts\/87\/revisions"}],"predecessor-version":[{"id":88,"href":"https:\/\/www.daishen.ltd\/index.php?rest_route=\/wp\/v2\/posts\/87\/revisions\/88"}],"wp:attachment":[{"href":"https:\/\/www.daishen.ltd\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=87"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.daishen.ltd\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=87"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.daishen.ltd\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=87"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}