Ubuntu 9.04安装Mysql Proxy Lua是本文要介绍的内容,主要是来了解Mysql Proxy在Ubuntu 9.04下的安装
环境,并且已经通过测试,具体内容来看本文
详解。
安装mysql
1、
1. apt-get install mysql-server mysql-client libmysqlclient15-dev
2、进入
1. mysql mysql -uroot -p
密码root
3、重新设置mysql
用户root的密码
1. GRANT ALL PRIVILEGES ON *.* TO root@localhost IDENTIFIED BY "123456";
4、创建新
数据库 proxy
1. create database proxy;
5、创建用户test 对proxy库有全部操作权限
1. grant all privileges on proxy.* to test@localhost identified by "zhaogongyu";
6、允许test用户可以从任意机器上登入MySQL。
1. 第一步:grant all privileges on proxy.* to test@"%" identified by "zhaogongyu";
2.
3. 第二步:$sudo gedit /etc/mysql/my.cnf
老版本
1. skip-networking => #skip-networking
新版本
1. bind-address=127.0.0.1 => bind-address= 你机器的IP
这样就可以允许其他机器访问MySQL了
7、重启mysql
命令
1. sudo /etc/init.d/mysql restart
8、开机启动mysql
1. vim /etc/rc.local
将下面这一行加入到最后一行
1. cd /usr/bin; /usr/bin/safe_mysqld --user=root &
2. exit 0
注意:记得加上cd /usr/local/mysql-5.1.36;并在改句后面加个空格,不然会导致无法自动在开机的时候启动
9、从数据库导出数据
1. mysqldump -uroot -p --default-character-set=latin1 --set-charset=gbk --skip-opt mydatabase > d.sql
10、创建新库
1. create database 'newdata' default character set gbk collate gbk_chinese_ci;
11、导入数据库
1. mysql -uroot -p --default-character=gbk -f newmydatabase >source d.sql ..>exit
安装读写分离 mysql-proxy
一、mysql
1. 1、apt-get install mysql-server mysql-client libmysqlclient15-dev
2.
3. 2、进入mysql mysql -uroot -p
密码root
3、重新设置mysql用户root的密码
1. GRANT ALL PRIVILEGES ON *.* TO root@localhost IDENTIFIED BY "123456";
4、创建新数据库 proxy 创建表 prodata
1. create database proxy;
2. CREATE TABLE prodata (name VARCHAR(20), sex CHAR(1));
5、创建用户test 对proxy库有全部操作权限
1. grant all privileges on proxy.* to test@localhost identified by "zhaogongyu";
6、允许test用户可以从任意机器上登入MySQL。
1. 第一步:grant all privileges on proxy.* to test@"%" identified by "zhaogongyu";
2.
3. 第二步:$sudo gedit /etc/mysql/my.cnf
老版本
1. skip-networking => #skip-networking
新版本
1. bind-address=127.0.0.1 => bind-address= 你机器的IP
这样就可以允许其他机器访问MySQL了
7、重启mysql命令
1. sudo /etc/init.d/mysql restart
注意: mysql安装后位置
执行
文件
1. /usr/bin/mysql
数据库
1. /var/lib/mysql
2. /var/log/mysql
控制文件
1. /etc/mysql/my.cnf
数据库命令行相关操作
2、创建一个数据库MYSQLDATA
1. mysql> CREATE DATABASE MYSQLDATA;
3、选择你所创建的数据库
1. mysql> USE MYSQLDATA; (按回车键出现Database changed 时说明操作成功!)
4、查看现在的数据库中存在什么表
1. mysql> SHOW TABLES;
5、创建一个数据库表
1. mysql> CREATE TABLE MYTABLE (name VARCHAR(20), sex CHAR(1));
6、显示表的结构:
1. mysql> DESCRIBE MYTABLE;
7、往表中加入记录
1. mysql> insert into MYTABLE values ("hyq","M");
8、用文本方式将数据装入数据库表中(例如D:/mysql.txt)
1. mysql> LOAD DATA LOCAL INFILE "D:/mysql.txt" INTO TABLE MYTABLE;
9、导入.sql文件命令(例如D:/mysql.sql)
1. mysql>use database;
2. mysql>source d:/mysql.sql;
10、删除表
1. mysql>drop TABLE MYTABLE;
11、清空表
1. mysql>delete from MYTABLE;
12、更新表中数据
1. mysql>update MYTABLE set sex="f" where name='hyq';
2.
3. http://hi.baidu.com/selfcool/blo ... 79b1f2e0fe0b9d.html
二、mysql-proxy
LUA文件介绍
1. http://www.oreillynet.com/pub/a/ ... l-proxy.html?page=1
2.
3. 192.168.1.38 proxy
4. 192.168.1.44 slaver 从机
5. 192.168.1.55 master 主机
6.
7. apt-get mysql-proxy
配置
1、读写分离脚本
修改默认连接,进行快速测试,不修改的话要等达到连接数时才读写分离
1. vim /usr/share/mysql-proxy/rw-splitting.lua
2. proxy.global.config.rwsplit = {
3. min_idle_connections = 1, #默认是4
4. max_idle_connections = 1, #默认是8
5.
6. is_debug = false
7. }
2、执行读写分离
1. mysql-proxy -–proxy-read-only-backend-addresses=10.0.0.6:3306 -–proxy-backend-addresses=10.0.0.5:3306
2. -–proxy-lua-script=/usr/share/mysql-proxy/rw-splitting.lua >/var/log/mysql-proxy/mysql-proxy.log &
3.
4. (新建/var/log/mysql-proxy/和mysql-proxy.log 调整属性775 属于chown R mysql.adm xx组)
5.
6. (sudo mysql-proxy --proxy-read-only-backend-addresses=192.168.1.44:3306
7. --proxy-backend-addresses=192.168.1.55:3306
8. --proxy-lua-script=/usr/share/mysql-proxy/rw-splitting.lua >/var/log/mysql-proxy/mysql-proxy.log &
9. )
注:当运行sudo mysql-proxy 查询进程后没有4040时候,需要重启mysql ( sudo /etc/init.d/mysql restart) 之后在输入proxy设置
3、查看进程
1. netstat -ant
2. tcp 00 0.0.0.0:40400.0.0.0:*LISTEN
3. tcp 00 0.0.0.0:40410.0.0.0:*LISTEN
启动成功
可以远程连接了,在一台linux主机上连接,进行一些读写操作
4、测试读写分离
进入mysql-proxy机子
1. a@a-desktop:/usr/share/mysql-proxy$ mysql -utest -p -P4040 -h192.168.1.38
2. Enter password:
3. Welcome to the MySQL monitor. Commands end with ; or \g.
4. Your MySQL connection id is 25
5. Server version: 5.0.51a-3ubuntu5.4-log
6.
7. Type 'help;' or '\h' for help. Type '\c' to clear the buffer.
8.
9. mysql> use proxy;
10. Database changed
插入一条记录
1. mysql> insert into prodata(name) values("zgy");
2. Query OK, 1 row affected (0.01 sec)
3.
4. mysql>select * from proxy;
5. Empty set (0.00 sec)
我们插入了数据没有结果~这就对了读写分离了~~~~
注:有时候mysql_proxy(38)库里会显示出数据,重启
系统系统,重新启动mysql后就没有此现象了。
进入主写
服务器(192.168.1.55) 查看数据
1. mysql -utest -p -h192.168.1.55
2. use proxy;
3. select * from prodata;
可以查看已经写入了一条记录
进入从读服务器(192.168.1.44)
1. mysql -utest -p -h192.168.1.44
2. use proxy;
3. select * from prodata;
因为没有数据显示
说明只能读 不能写。
转自 http://www.mobpub.net/thread-9477-1-1.html