搭建博客(四)二进制安装MySQL5.5
这次的活动白送了半年的数据库,看了一下那个价格太贵了,半年后还要迁移,索性直接安到服务器上。
关于MySQL
如果安装过,要先卸载掉
这里是官方给出的安装指南,以下安装操作匀参照此说明。
一、下载MySQL二进制安装包
所谓二进制安装包,就是别人已经编译好了的包,下载回来配置一下安装上就可以用了。
从搜狐镜像站下载MySQL5.5.55。
二、安装libaio
yum -y install libaio
三、安装MySQL
官方的安装说明就照着这个一步步整,把该换的地方换成自己的。
-
添加一个
mysql
组:groupadd mysql
-
添加一个
mysql
用户,并指定到mysql
组,且不可登录系统:useradd -r -g mysql -s /bin/false mysql
-
将之前解压出来的mysql安装目录,递归改变属主和属组到
mysql
。cd /usr/local/src/ chown -R mysql mysql-5.5.55-linux2.6-x86_64 chgrp -R mysql mysql-5.5.55-linux2.6-x86_64
-
以
mysql
用户身份运行scripts
目的脚本mysql_install_db
:报错
说找不到
./bin/my_print_defaults
这个文件,我当前是在scripts
目录下,只有mysql_install_db
这么一个可执行文件,肯定没有。看来不能在当前这个目录下运行这个命令,切回到mysql的安装包目录,再次执行,安装完成。
-
再把除了
data
以外的其它目录权限还给root
:chown -R root chown -R mysql data
-
把配置文件放到指定目录下:
cp support-files/my-medium.cnf /etc/my.cnf
,提示已有my.cnf
了,看了一下,是阿里云ECS自带的,为了安全起见,备份一个再弄过去。 -
启动mysql服务器:
bin/mysqld_safe --user=mysql &
这就完了?
px aux | grep mysql
没有mysql
的进程,启动失败了。仔细一看,写了一个日志
/usr/local/mysql/data/Coderlxc.err
。查看日志,发现
/usr/local/
目录下根本没有mysql
目录,这里我忘记了,官方的说明里是把整个下载下来的目录给弄到了/usr/local/
下并做了个软链接,现在只好把那个目录拿过来改个名了。mv /usr/local/src/mysql-5.5.55-linux2.6-x86_64 /usr/local/mysql
再次启动。
又你妹的写错误日志!
又看到
Logging to '/usr/local/mysql/data/Coderlxc.err'
这句话,菊花一紧,赶紧查看进程,没有。看日志。
和搜索引擎请教了一番,得知原因应该大概如下此:因为我上面不小心给目录弄错,导致留下了问题后遗症。
scripts/mysql_install_db --user=mysql --datadir=/usr/mysql/data
重新搞一下。还是不行
重新查看日志还是那个问题。
为什么不行?得知这个解决办法的时候明明看到那位兄台说,他想把
data
目录放在别的地方。而我为什么会引发这一系列错误?都是因为我在运行
mysql_install_db
的时候,没有把目录搞正确,查阅得知,这个命令是创建mysql
系统的那个库。他想把
data
目录搞到别的地方,但我不想,我只是一开始的时候没有把目录放对地方而已,但我现在已经放对了地方了,我为什么还要按照他的写法去重新运行??没道理,去掉他的参数,再试一下。
这回是两行,没有提示启动结束,查看进程,果然启动了。
四、上一步的总结
搞到现在都是因为没太仔细看官方的说明,把步骤给弄混了,才导致了后面一系列问题。
现在问题解决了,回过头来重新整理思路。
- 添加一个
mysql
的用户组。 - 创建了一个系统用户
mysql
,属于mysql
用户组,且不可登录。 - 把
mysql
的安装目录放到/usr/loca/
下,并改名为mysql
。 - 将
mysql
目录属组和属主都改为mysql
。 - 以
mysql
用户身份运行mysql_install_db
,安装系统库。 - 将除了
data
以外的目录属主都还给root
。 - 执行:
./bin/mysqld_safe &
后台启动mysqld服务器。
五、修改root用户密码并做连接测试
-
修改
root
用户的密码执行:./bin/mysqladmin -u root password 'new-password'
-
连接测试:
./bin/mysql -u root -p
输入密码后登录成功。