十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
步骤/方法1打开下载的安装文件,出现如下界面:2mysql安装向导启动,点击“next”继续。3选择安装类型,有“Typical(默认)”、“Complete(完全)”、“Custom(用户自定义)”三个选项,我们选择“Custom”,有的选项,也方便熟悉安装过程。4在“MySQLServer(MySQL服务器)”上左键单击,选择“Thisfeature,andallsubfeatures,willbeinstalledonlocalharddrive.”,即“此部分,及下属子部分内容,全部安装在本地硬盘上”。点选“Change”,手动指定安装目录。5确认一下先前的设置,如果有误,按“Back”返回重做。按“Install”开始安装。6正在安装中,请稍候,直到出现下面的界面。7点击“next”继续,出现如下界面。8现在软件安装完成了,出现上面的界面,这里有一个很好的功能,mysql配置向导,不用向以前一样,自己手动乱七八糟的配置my.ini了,将“ConfiguretheMysqlServernow”前面的勾打上,点“Finish”结束软件的安装并启动mysql配置向导。9点击“Finsh”,出现如下界面,MySQLServer配置向导启动。10点击“next”出现如下界面:选择配置方式,“DetailedConfiguration(手动精确配置)”、“StandardConfiguration(标准配置)”,我们选择“DetailedConfiguration”,方便熟悉配置过程。选择服务器类型,“DeveloperMachine(开发测试类,mysql占用很少资源)”、“ServerMachine(服务器类型,mysql占用较多资源)”、“DedicatedMySQLServerMachine(专门的数据库服务器,mysql占用所有可用资源)”,大家根据自己的类型选择了,一般选“ServerMachine”,不会太少,也不会占满。选择mysql数据库的大致用途,“MultifunctionalDatabase(通用多功能型,好)”、“TransactionalDatabaseOnly(服务器类型,专注于事务处理,一般)”、“Non-TransactionalDatabaseOnly(非事务处理型,较简单,主要做一些监控、记数用,对MyISAM数据类型的支持仅限于non-transactional),随自己的用途而选择了,我这里选择“TransactionalDatabaseOnly”,按“Next”继续。对InnoDBTablespace进行配置,就是为InnoDB数据库文件选择一个存储空间,如果修改了,要记住位置,重装的时候要选择一样的地方,否则可能会造成数据库损坏,当然,对数据库做个备份就没问题了,这里不详述。我这里没有修改,使用默认位置,直接按“Next”继续。选择您的网站的一般mysql访问量,同时连接的数目,“DecisionSupport(DSS)/OLAP(20个左右)”、“OnlineTransactionProcessing(OLTP)(500个左右)”、“ManualSetting(手动设置,自己输一个数)”,我这里选“OnlineTransactionProcessing(OLTP)”,自己的服务器,应该够用了,按“Next”继续。是否启用TCP/IP连接,设定端口,如果不启用,就只能在自己的机器上访问mysql数据库了,我这里启用,把前面的勾打上,PortNumber:3306,在这个页面上,您还可以选择“启用标准模式”EnableStrictMode),这样MySQL就不会允许细小的语法错误。如果您还是个新手,我建议您取消标准模式以减少麻烦。但熟悉MySQL以后,尽量使用标准模式,因为它可以降低有害数据进入数据库的可能性。还有一个关于防火墙的设置“Addfirewallexception……”需要选中,将MYSQL服务的监听端口加为windows防火墙例外,避免防火墙阻断。按“Next”继续。注意:如果要用原来数据库的数据,最好能确定原来数据库用的是什么编码,如果这里设置的编码和原来数据库数据的编码不一致,在使用的时候可能会出现乱码。这个比较重要,就是对mysql默认数据库语言编码进行设置,第一个是西文编码,第二个是多字节的通用utf8编码,都不是我们通用的编码,这里选择第三个,然后在CharacterSet那里选择或填入“gbk”,当然也可以用“gb2312”,区别就是gbk的字库容量大,包括了gb2312的所有汉字,并且加上了繁体字、和其它乱七八糟的字——使用mysql的时候,在执行数据操作命令之前运行一次“SETNAMESGBK;”(运行一次就行了,GBK可以替换为其它值,视这里的设置而定),就可以正常的使用汉字(或其它文字)了,否则不能正常显示汉字。按“Next”继续。选择是否将mysql安装为windows服务,还可以指定ServiceName(服务标识名称),是否将mysql的bin目录加入到WindowsPATH(加入后,就可以直接使用bin下的文件,而不用指出目录名,比如连接,“mysql.exe-uusername-ppassword;”就可以了,不用指出mysql.exe的完整地址,很方便),我这里全部打上了勾,ServiceName不变。按“Next”继续。这一步询问是否要修改默认root用户(超级管理)的密码(默认为空),“Newrootpassword”如果要修改,就在此填入新密码(如果是重装,并且之前已经设置了密码,在这里更改密码可能会出错,请留空,并将“ModifySecuritySettings”前面的勾去掉,安装配置完成后另行修改密码),“Confirm(再输一遍)”内再填一次,防止输错。“Enablerootaccessfromremotemachines(是否允许root用户在其它的机器上登陆,如果要安全,就不要勾上,如果要方便,就勾上它)”。最后“CreateAnAnonymousAccount(新建一个匿名用户,匿名用户可以连接数据库,不能操作数据,包括查询)”,一般就不用勾了,设置完毕,按“Next”继续。确认设置无误,如果有误,按“Back”返回检查。按“Execute”使设置生效。设置完毕,按“Finish”结束mysql的安装与配置。
创新互联是一家专注于网站制作、网站建设与策划设计,克山网站建设哪家好?创新互联做网站,专注于网站建设十余年,网设计领域的专业建站公司;建站业务涵盖:克山等地区。克山做网站价格咨询:18982081108
安装 mysql-proxy 步骤如下:
解压 mysql-proxy-0.8.1-linux-glibc2.3-x86-32bit.gz
tar zxvf mysql-proxy-0.8.1-linux-glibc2.3-x86-32bit.gz
cp -R mysql-proxy-0.8.1-linux-glibc2.3-x86-32bit /usr/local/proxy-mysql
新建或编辑 /etc/mysql-proxy.cnf 文件,添加以下内容 ( 具体参数根据实际情况修改 ) :
vi /etc/mysql-proxy.cnf
[mysql-proxy]
admin-username = zhangdongyu
admin-password = 123123
daemon = true
keepalive = true
proxy-backend-addresses = 192.168.0.88:3306
proxy-read-only-backend-addresses = 192.168.0.88:3307
proxy-lua-script = /usr/local/proxy-mysql/share/doc/mysql-proxy/rw-splitting.lua
admin-lua-script = /usr/local/proxy-mysql/share/doc/mysql-proxy/admin-sql.lua
log-file = /usr/local/proxy-mysql/cn.log
log-level = debug
主要参数注解:
proxy-backend-addresses mysql 主库(写)地址
proxy-read-only-backend-addresses mysql 从库(读)地址
proxy-lua-script 读写分离脚本
admin-lua-script admin 脚本
admin-username 数据库用户名(主从上都需建立相同用户)
admin-password 数据库密码
daemon daemon 进程运行
keepalive 保持连接(启动进程会有 2 个,一号进程用来监视二号进行,如果二号进程死掉自动重建,此参数在旧版本中无法使用)
编辑 profile/.bash_profile 脚本
vi /etc/profile( 或者 .bash_profile)
LUA_PATH="/usr/local/proxy-mysql/share/doc/mysql-proxy/?.lua"
export LUA_PATH
export PATH=$PATH:/usr/local/proxy-mysql/bin
:wq
source /etc/profile
为方便建立建立 mysql-proxy.sh 脚本
#!/bin/bash
mode=$1
if [ -z "$mode" ] ; then
mode="start"
fi
case $mode in
start)
mysql-proxy --defaults-file=/etc/mysql-proxy.cnf/usr/local/proxy-mysql/cn.log
;;
stop)
killall -9 mysql-proxy
;;
restart)
if $0 stop ; then
$0 start
else
echo "Restart failed!"
exit 1
fi
;;
esac
exit 0
启动 mysql-proxy
sh 脚本
启动: ./mysql-proxy.sh 或 ./mysql-proxy.sh start
启动日志
重启: ./mysql-proxy.sh restart
停止: ./mysql-proxy.sh stop
测试:
为达到测试效果,修改 admin-sql.lua 脚本以下两行
vi /usr/local/proxy-mysql/share/doc/mysql-proxy/rw-splitting.lua
if not proxy.global.config.rwsplit then
proxy.global.config.rwsplit = {
min_idle_connections = 1, # 修改最小连接为 1
max_idle_connections = 2, # 修改最大连接为 2
is_debug = true #debug 为 true
}
end
重启 mysql-proxy 代理
开启两个终端分别连接代理:
ONE : ./mysql -h192.168.0.88 -uzhangdongyu -p123123 -P4040
TWO : ./mysql -h192.168.0.88 -uzhangdongyu -p123123 -P4040
可看到连接成功信息:
操作 ONE 客户端:
执行 select 语句观察数据库 log 文件
select * from z_member_info;
观察主从库日志文件,发现查询发生在主库?
主库: 192.168.0.88:3306 日志文件: tail -f /usr/local/mysql/localstate/mysqlexecute.log
这是因为 mysql-proxy 代理会检测客户端连接,当连接没有超过 min_idle_connections 预设值时,不会进行读写分离,即查询操作会发生到主库上。
操作 TWO 客户端:
执行 select 语句观察数据库 log 文件
select * from z_member_info;
观察主从库日志文件,发现主库没有任何记录,查询日志记录在从库。
从库: 192.168.0.88:3306 日志文件: tail -f /usr/local/mysql3307/localstate/mysqlexecute.log
操作两个终端进行 insert 操作,会发现写操作始终被主库( 3306 )日志文件记录。
至此 mysql-proxy 安装测试完成。
注:生产环境一定要根据实际情况配置相关文件,至于 lua 文件强烈推荐读者自行,目前正在研究 lua 文件的优化与定制,不久会发上来。
做端口映射,在代理服务器上安装端口映射工具,例如PortMap。然后进行配置,把代理服务器的数据库端口映射到数据库服务器的数据库端口上。例如sqlserver是1433,oracle是1521.
这样你访问代理服务器的数据库端口就等于访问数据库服务器的对应端口了。
为了更加安全,你还可以在客户端上设置使用非默认的端口访问代理服务器,然后在代理服务器上把你指定的端口映射到数据库服务器的数据库端口。比如在代理服务器上把8000端口映射到服务器1433端口,然后在客户端上配置为使用8000端口来访问数据库。这样你就可以通过代理服务器的8000端口来连接sqlserver数据库了。
另外,也可以不用代理服务器,直接用路由器做端口映射。
Mysql-Proxy是一个处于你的client端和Mysql Server端之间的一个简单程序,它可以监测、分析和改变他们的通信。它使用灵活没有限制,常见的用途包括:负载平衡,故障、查询分析,查询过滤和修改等等。可以抽象成nginx与php-fpm的关系 本文介绍centos7.4上使用mysql-proxy
mysql-proxy 也支持读写分离/负载均衡等 可以详情可参考官方文档
linux下使用yum安装mysql 1. 安装mysql 服务器端: yum install mysql-server yum install mysql-devel 2. 安装mysql客户端: yum install mysql 3. 启动mysql服务: service mysqld start或者/etc/init.d/mysqld start 停止: service mysqld s...
某天有人问了我一个有关 MySQL PROXY 用户该如何使用的问题。
原问题是这样的:MySQL 版本从 5.5 升级到 8.0 后,proxy 用户怎么无法使用了?我之前是按照你博客上写的方法使用的,但是在升级后,安装插件提示如下错误:
这个咋回事?
我给了一个大家都很讨厌的答案: 去看 MySQL8.0 官方手册吧。
auth_test_plugin.so 是 MySQL 5.5 的插件,仅限于测试环境,不推荐线上使用,仅限功能演示。之后的一系列大版本安装包里都不包含这个插件,所以使用方法有些差异。
我在下面示例中使用插件 mysql_native_password ,这个插件自带 proxy 用户功能,所以需要在配置文件里开启对应的开关,并重启 MySQL 实例:(如果使用 sha256_password , 应该把参数 sha256_password_proxy_users=ON 也加到配置文件里。)
使用 proxy 用户功能之前,需要安装 mysql_no_login 插件,阻止隐藏在 proxy 用户下的真实用户登录 MySQL 。
创建一个 proxy 用户 ytt_fake ,使用认证插件 mysql_native_password :
使用 Proxy 用户登录 MySQL :
确认下变量 proxy_user 的值是不是 ytt_fake :
使用 proxy 用户登录后,查看当前登录用户信息:用户实际上是 ytt_real 。
确认下权限:具有真实用户的所有权限。
用 proxy 用户创建表、插入记录、查询、销毁表:
由于真实用户 ytt_real 使用认证插件 mysql_no_login ,MySQL 不允许此用户登录: