Mysql安装
步骤:
(1)查看CentOS7自带的mysql
输入 rpm -qa | grep mysql
rpm -qa | grep -imariadb
rpm -e --nodeps mariadb-libs-5.5.60-1.el7_5.x86_64
rpm -qa | grep -imysql
(2)将自带的mysql卸载
rpm -e --nodeps mariadb-libs-5.5.60-1.el7_5.x86_64
(3)上传Mysql到linux
(4)安装mysql的依赖
yum -y install libaio.so.1 libgcc_s.so.1 libstdc++.so.6
yum install -y perl-Module-Install.noarch
yum install net-tools -y
(5)解压Mysql到/usr/local/下的mysql目录(mysql目录需要手动创建)内
cd /usr/local
mkdirmysql
tar -xvf MySQL-5.6.22-1.el6.i686.rpm-bundle.tar -C /usr/local/mysql
(6)在/usr/local/mysql下安装mysql
安装服务器端:rpm -ivh MySQL-server-5.6.22-1.el6.i686.rpm
安装客户端:rpm -ivh MySQL-client-5.6.22-1.el6.i686.rpm
(7)启动mysql
service mysql start
(8)将mysql加到系统服务中并设置开机启动
加入到系统服务:chkconfig --add mysql
自动启动:chkconfigmysql on
(9)登录mysql
mysql安装好后会生成一个临时随机密码,存储位置在/root/.mysql_secret
(10)修改mysql的密码
set password = password('root');
(11)开启mysql的远程登录
登录mysql后输入如下命令:
grant all privileges on *.* to 'root' @'%' identified by 'root';
flush privileges;
(12)开放Linux的对外访问的端口3306
systemctl stop firewalld
systemctl mask firewalld
systemctl enable iptables
iptables -P OUTPUT ACCEPT
service iptables save
iptables -A INPUT -m state --state NEW -m tcp -p tcp --dport 3306 -j ACCEPT
service iptables save
cat /etc/sysconfig/iptables
service iptables restart
systemctl reload iptables
cd /etc/
主从配置
主服务器配置
cd /usr/share/mysql/
cp my-default.cnf /etc/my.cnf
cd /etc/
vi my.cnf
第一步:修改my.cnf文件:
在[mysqld]段下添加:
binlog-do-db=db1 binlog-ignore-db=mysql #启用二进制日志 log-bin=mysql-bin #服务器唯一ID,一般取IP最后一段 server-id=130 |
第二步:重启mysql服务
service mysql restart
service mysql start
第三步:建立帐户并授权slave
mysql>GRANT FILE ON *.* TO 'backup'@'%' IDENTIFIED BY '123456';
mysql>GRANT REPLICATION SLAVE, REPLICATION CLIENT ON *.* to 'backup'@'%' identified by '123456';
#一般不用root帐号,“%”表示所有客户端都可能连,只要帐号,密码正确,此处可用具体客户端IP代替,如192.168.145.226,加强安全。
刷新权限
mysql> FLUSH PRIVILEGES;
查看mysql现在有哪些用户
mysql>select user,host from mysql.user;
第四步:查询master的状态
mysql> show master status;
从服务器配置
cd /usr/share/mysql/
cp my-default.cnf /etc/my.cnf
cd /etc/
vi my.cnf
第一步:修改my.conf文件
[mysqld]
server-id=166
重新启动
service mysql restart
service mysql start
第二步:配置从服务器
mysql>change master to master_host='192.168.25.134',master_port=3306,master_user='backup',master_password='123456',master_log_file='mysql-bin.000001',master_log_pos=120
注意语句中间不要断开,master_port为mysql服务器端口号(无引号),master_user为执行同步操作的数据库账户,“120”无单引号(此处的120就是show master status 中看到的position的值,这里的mysql-bin.000001就是file对应的值)。
第二步:启动从服务器复制功能
Mysql>start slave;
第三步:检查从服务器复制功能状态:
mysql> show slave status
……………………(省略部分)
Slave_IO_Running: Yes //此状态必须YES
Slave_SQL_Running: Yes //此状态必须YES
……………………(省略部分)
注:Slave_IO及Slave_SQL进程必须正常运行,即YES状态,否则都是错误的状态(如:其中一个NO均属错误)。
以上操作过程,从服务器配置完成。
JDK安装
步骤:
(1)查看当前Linux系统是否已经安装java
输入 rpm -qa | grep java
(2)卸载两个openJDK
输入rpm -e --nodeps 要卸载的软件
(3)上传jdk到linux
(4)安装jdk运行需要的插件yum install glibc.i686
(6)配置jdk环境变量,打开/etc/profile配置文件,将下面配置拷贝进去
安装mycat同时要添加下面这一行代码
MYCAT_HOME=/usr/local/mycat
(7)重新加载/etc/profile配置文件 source /etc/profile
Mycat安装
第一步:把MyCat的压缩包上传到linux服务器
Mycat-server-1.6.6.1-release-20181031195535-linux.tar.gz
第二步:解压缩,得到mycat目录
tar zxf Mycat-server-1.6.6.1-release-20181031195535-linux.tar.gz
cp -r mycat /usr/local/
第三步:进入mycat/bin,启动MyCat
启动命令:./mycat start
停止命令:./mycat stop
重启命令:./mycat restart
注意:可以使用mysql的客户端直接连接mycat服务。默认服务端口为8066
开启8066端口
配置schema.xml
Schema.xml介绍
Schema.xml作为MyCat中重要的配置文件之一,管理着MyCat的逻辑库、表、分片规则、DataNode以及DataSource。弄懂这些配置,是正确使用MyCat的前提。这里就一层层对该文件进行解析。
schema 标签用于定义MyCat实例中的逻辑库
Table 标签定义了MyCat中的逻辑表
dataNode 标签定义了MyCat中的数据节点,也就是我们通常说所的数据分片。
dataHost标签在mycat逻辑库中也是作为最底层的标签存在,直接定义了具体的数据库实例、读写分离配置和心跳语句。
注意:若是LINUX版本的MYSQL,则需要设置为Mysql大小写不敏感,否则可能会发生表找不到的问题。在MySQL的配置文件中my.ini [mysqld] 中增加一行lower_case_table_names = 1 |
Schema.xml配置
<?xml version="1.0"?> <!DOCTYPE mycat:schema SYSTEM "schema.dtd"> <mycat:schemaxmlns:mycat="http://io.mycat/"> <schema name="test1" checkSQLschema="false" sqlMaxLimit="100"> <!-- auto sharding by id (long) --> <table name="test_db1" dataNode="dn1,dn2,dn3" rule="auto-sharding-long" /> <table name="test_db2" dataNode="dn4" /> <table name="test_db3" dataNode="dn4" /> <table name="test_db4" dataNode="dn4" /> <table name="test_db5" dataNode="dn4" /> <table name="test_db6" dataNode="dn4" /> <table name="test_db7" dataNode="dn4" /> <table name="test_db8" dataNode="dn4" /> <table name="test_db9" dataNode="dn4" /> <table name="test_db10" dataNode="dn4" /> <table name="test_db11" dataNode="dn4" /> <table name="test_db12" dataNode="dn4" /> </schema> <dataNode name="dn1" dataHost="localhost1" database="db2" /> <dataNode name="dn2" dataHost="localhost1" database="db3" /> <dataNode name="dn3" dataHost="localhost1" database="db4" /> <dataNode name="dn4" dataHost="localhost2" database="db1" /> <dataHost name="localhost1" maxCon="1000" minCon="10" balance="0" <heartbeat>select user()</heartbeat> <!-- can have multi write hosts --> <writeHost host="hostM1" url="192.168.92.132:3306" user="root" <!-- can have multi read hosts --> </writeHost> </dataHost> <dataHost name="localhost2" maxCon="1000" minCon="10" balance="1" <heartbeat>show slave status</heartbeat> <!-- can have multi write hosts --> <writeHost host="hostM1" url="192.168.92.130:3306" user="root" <!-- can have multi read hosts --> <readHost host="hostS2" url="192.168.92.131:3306" user="root" password="root" /> </writeHost> </dataHost> </mycat:schema> |
配置server.xml
(1)Server.xml介绍
server.xml几乎保存了所有mycat需要的系统配置信息。最常用的是在此配置用户名、密码及权限。
(2)Server.xml配置
<user name="user"> <property name="password">user</property> <property name="schemas">test1</property> </user> |