游戏服务器开发--阿里云Ubuntu 安装mysql

来源:互联网 发布:浙江大学软件学院宁波 编辑:程序博客网 时间:2024/06/02 03:37

昨天晚上在办公定呆了一晚上,因为服务器在创建玩家时,就插了十几条数据,居然耗时达到30甚至40ms,导致整个创建玩家的耗时达到了50多ms,严重影响了体验。
所以分析了各种原因,以为是mysql 运行太久,导致插入速度变慢,之前安装了mysql 之后,阿里云服务器就没重启过,mysql 的服务也没关过,由于隔的太久,不知道怎么重启mysql,七弄八弄,居然把mysql 进程给关掉了,完了,不知道怎么启动,第二天要测试,心里那个急啊。一狠心重新装一个吧。所以在今天一定要把重装的过程记录下来。

下载安装包
wget http://oss.aliyuncs.com/aliyunecs/onekey/mysql/mysql-5.5.35-linux2.6-x86_64.tar.gz
解压到固定目录
tar zxvf mysql-5.5.35-linux2.6-x86_64.tar.gz -C /alidata/server/
将解压后的目录重命名为 mysql
cd /alidata/server
mv mysql-5.5.35-linux2.6-x86_64 mysql
添加组与用户,并进行安装

groupadd mysqluseradd -g mysql -s /sbin/nologin mysql/alidata/server/mysql/scripts/mysql_install_db --datadir=/alidata/server/mysql/data/ --basedir=/alidata/server/mysql --user=mysql 

接着执行如下命令

chown -R mysql:mysql /alidata/server/mysql/chown -R mysql:mysql /alidata/server/mysql/data/chown -R mysql:mysql /alidata/log/mysql\cp -f /alidata/server/mysql/support-files/mysql.server /etc/init.d/mysqlsed -i 's#^basedir=$#basedir=/alidata/server/mysql#' /etc/init.d/mysqlsed -i 's#^datadir=$#datadir=/alidata/server/mysql/data#' /etc/init.d/mysql\cp -f /alidata/server/mysql/support-files/my-medium.cnf /etc/my.cnfsed -i 's#skip-locking#skip-external-locking\nlog-error=/alidata/log/mysql/error.log#' /etc/my.cnfchmod 755 /etc/init.d/mysql 

说明 mysql 的配置文件my.cnf在 etc目录下 , 启动进程是 /etc/init.d下的mysql

启动mysql
/etc/init.d/mysql start
关闭mysql
/etc/init.d/mysql stop

mysql启动后,可以查看下端口,确认mysql已经正常启动
netstat -tnl|grep 3306

增加软链接
ln -s /alidata/server/mysql/bin/mysql /usr/bin
ln -s /alidata/server/mysql/bin/mysqladmin /usr/bin

为root 用户设置密码
/alidata/server/mysql/bin/mysqladmin -u root password ‘abc123abc’

用root 用户登陆
mysql -uroot -pabc123abc

用root 用户登陆之后,可以设置权限
mysql> GRANT ALL PRIVILEGES ON . TO root IDENTIFIED BY “abc123abc”;
设置成功之后,就可以用远程客户端连接mysql

写测试代码编译的时候类似于如下这种

g++ -o test testmysql.cpp -lmysqlclient -I /alidata/server/mysql/include -L /alidata/server/mysql/lib

这里写图片描述

http://blog.csdn.net/dumeifang/article/details/2963223

安装完之后,创建玩家时,还是很慢,要30多ms,在网上查了下原因,也查了一下代码,看了一下数据表的设计,哦,原来不慢后来变慢了,之前用的是mysqlIsam 引擎,而新的表是innodb引擎,MysqlIsam 引擎不支持事务,而Innodb引擎支持一些复杂事务,自然插入时间要比MysqlIsam 长,果断地将新表的引擎换成MysqlIsam,再重新创建玩家,30ms变成3ms,整整提升了10倍,困扰了好久的问题终于解决了,可以睡觉了,12点啦,回不去啦,只能在办公室睡。

http://www.codingyun.com/article/38.html

0 0
原创粉丝点击