一、系统环境
系统:Debian GNU/Linux 7.0 (wheezy)
要安装的mysql版本:5.1.30
二、安装mysql
1.点击mysql下载地址下载二进制MySQL分发版。文件格式是mysql-VERSION-OS.tar.gz。我下载的是mysql-5.1.30-linux-x86_64-glibc23.tar.gz
2.解压
tar -xvf mysql-5.1.30-linux-x86_64-glibc23.tar.gz
3.将解压后的文件目录移动到/usr/local/目录下并改名mysql,并切换到该目录。
mv ./mysql-5.1.30-linux-x86_64-glibc23 /usr/local/mysql
cd /usr/local/mysql
mysql目录结构

3.创建mysql用户和组
groupadd mysql
useradd -g mysql mysql
4.改变mysql目录属主和属组
chown -R mysql .
chgrp -R mysql .
5.初始化数据库和表
script/mysql_install_db --user=mysql
6.改变目录属性,data目录的所有者必须为mysql
chown -R root .
chown -R mysql data
7.启动mysql服务
bin/mysqld_safe --user=mysql &

若见到以上输出则表示mysql服务已经启动
三、配置mysql
1.安装完成后默认root用户没有密码可以直接登陆
bin/mysql -u root

输入quit;退出sql
对root用户设置一个密码:"passwdroot"
bin/mysqladmin -u root password 'passwdroot'
此时登陆root用户需要输入密码

若之后再次使用mysqladmin尝试设置改变root密码就是被禁止的了

2.root身份登陆数据库,创建一个”user1“用户,密码是“passwd1”,
create user 'user1'@'localhost' identified by 'passwd1';

3.对用户“user1”授权数据库和表的操作
grant all privileges on *.* to 'user1'@'localhost' ;
之后就可以用“user1”这个用户登录sql了
4.用户远程登陆。当sql服务启动后,可以在本机用账户“user1”登陆,但是在远程主机登陆时会遇到以下问题:

由于在创建用户“user1”时使用'user1'@'localhost',其中的'localhost'表示创建本地登录用户。因此不能进行远程登陆,需要对mysql数据库中的user表项进行修改,并刷新权限
use mysql
update user set host='%' where user='user1';
flush privileges;
其中的'%'代表可以用任何地址登陆,也可以设置成具体登陆地址比如192.168.1.100

此时远程主机可以正常登陆mysql

5.添加到环境变量
编辑~/.bashrc文件,在末尾加入以下行
export PATH=$PATH:/usr/local/mysql/bin
保存后退出,使.bashrc生效
source ~/.bashrc
四、配置sql服务开机启动
1.将support-files文件夹内的mysql.server启动脚本拷贝到/etc/init.d目录下并改名mysql。
cp support-files/mysql.server /etc/init.d/mysql
- 编辑/etc/rc.local文件,加入以下行
service mysql start

之后mysql服务就会伴随系统启动了
五、相关问题
在安装mysql时发现使用任何用户名都可以登陆mysql

是由于其初始化过程的user表的错误导致的。其中有名为“” 的用户项,因此只需要删除名为“”的用户项就可以了。
use mysql
delete from user where user="";
flush privileges;
之后再用任意用户名就不可以登陆mysql数据库了
