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