即将新官上任,有很多环境要自己搭建,现将自己搭建的每一个过程都记录下来,希望给自己做个保存,也想给有同样需要的朋友提供参考,减少不必要的时间
我用的是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