即将新官上任,有很多环境要自己搭建,现将自己搭建的每一个过程都记录下来,希望给自己做个保存,也想给有同样需要的朋友提供参考,减少不必要的时间
我用的是ubuntu11.04版本,绝对是全新的环境,参照的mysql官网的英文步骤操作的
一、准备工作
a. 到mysql官网下载mysql-5.6.10.tar.gz文件,记住,这里是source安装,不是generic安装,source是需要自己编译的,generic的是已经编译好的;这里我已经提供了下载好的source版,见附件
b.安装cmake工具,查看是否安装
cmake -v
没有安装的话,直接
apt-get install cmake
c.安装g++或者其他C/C++编译工具,我这里安装的是g++,因为安装g++,也会连gcc也安装上;
查看是否安装
g++ -version
如果没有安装的话,直接
apt-get install g++
d.安装bison
apt-get install bison
apt-get install libncurses5-dev #安装curses图形库
二、安装
添加mysql用户组和用户
groupadd mysql
useradd -r -g mysql mysql
cd /usr/src #mysql-5.6.10就下载在该目录下
tar zxvf mysql-5.6.10.tar.gz
cd mysql-5.6.10/
cmake .
make
make install
cd /usr/local/mysql
chown -R mysql .
chgrp -R mysql .
scripts/mysql_install_db --user=mysql
chown -R root .
chown -R mysql data
cp support-files/my-medium.cnf /etc/my.cnf
bin/mysqld_safe --user=mysql &
cp support-files/mysql.server /etc/init.d/mysql.server
至此安装完成,用如下命令可以进行mysql服务器的操作
service mysql.server start
service mysql.server stop
service mysql.server restart
service mysql.server 可以显示有哪些options
注意,大多数人分不清楚如何查看mysql server是否安装成功
用如下命令查看mysqlserver是否运行
netstat -nat
看到如下3306监听tcp端口,表示已经启动
tcp6 0 0 :::3306 :::* LISTEN
也可以停止server再查看一下,会发现没有了
三、安装mysql-client客户端
此时在命令运行mysql命令,不会有任何反应,有些人会误以为还要安装mysql-client端
其实mysql-5.6.10编译安装已经包含了client端,在源码包/usr/src/mysql-5.6.10/client可以看到源码包
在/usr/local/mysql/bin目录下可以使用mysql命令、mysqladmin、mysqldump等
这时大家就明白了,只要将/usr/local/mysql/bin目录设为环境目录就行了
操作如下
两种方法:
1.直接编辑profile
vi /etc/profile
在最后加
export MYSQL_BIN=/usr/local/mysql/bin
export PATH=$PATH:$MYSQL_BIN
2.在/etc/profile.d目录下新增sh文件
cd /etc/profile.d
vi mysql.sh
输入内容
MYSQL_BIN=/usr/local/mysql/bin
if [ -d $MYSQL_BIN ]; then
export PATH=$PATH:$MYSQL_BIN
fi
简单吧,看一下就明白了,其实profile会执行/etc/profile.d下面的每个sh脚本
这样在命令行任何目录就可以使用mysql命令了,以后每次登录的时候也可以了使用mysql命令了
四、使初始MySQL账户安全
我喜欢站在别人是初学者的角度记录文档,毕竟我们是想让别人完全看懂,没有落下任何步骤的操作正确;
上面的server和client都可以使用,我们就应该考虑账户问题了,因为在这之前都没有账户,你一定也想到了;我这里同样是官方的手册文档,请放一百个心的按步操作
mysql_install_db程序已经安装了授权表,在mysql的user表中可以查看
mysql -u root
use mysql;
mysql> select host,user,password from user ;
结果如下:
+-----------+------+----------+
| host | user | password|
+-----------+------+----------+
| localhost | root | |
| ubuntu | root | |
| 127.0.0.1 | root | |
| ::1 | root | |
| localhost | | |
| ubuntu | | |
+-----------+------+----------+
6 rows in set (0.00 sec)
可以看出,目前我们有6个mysql账户了,可惜的是password都为空,这意味着,我们的数据库未收到任何保护,root账户和最后两个匿名账户,都是无密码状态,理想的状态下,我们要删除掉这两个匿名账户,毕竟我们都不希望别人匿名访问我们的数据库
mysql> DELETE FROM mysql.user WHERE User = '';
mysql> FLUSH PRIVILEGES;
这样我们就删除了匿名账户,只剩root账户了,并且是权限立即生效了
如果你没有删除匿名账户,你可以通过SET PASSWORD或者UPDATE或者mysqladmin来设置匿名账户密码!!!
为root账户指定密码!!!!
用SET PASSWORD、UPDATE、mysqladmin命令都可以设置,我们只选择UPDATE最简单方式
mysql> UPDATE mysql.user SET Password = PASSWORD('qjwm@850120$') WHERE User = 'root';
mysql> FLUSH PRIVILEGES;
这样就将root密码改为了qjwm@850120$
设置密码的时候一定要用PASSWORD加密
至此,root用户就已经被设置了密码,以后再进行数据库操作的时候,都需要提供密码了
剩下的你就可以用GRANT新增账户并进行其他操作了,祝大家好运!
如果root账户密码丢失了,还可以找回,这里只提供个链接了!http://dev.mysql.com/doc/refman/5.1/zh/problems.html#resetting-permissions