Linux(debian)安装配置mysql5.1.30

⌚Time: 2021-07-31 22:57:24

👨‍💻Author: Jack Ge

一、系统环境

系统: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
  1. 编辑/etc/rc.local文件,加入以下行
service mysql start

之后mysql服务就会伴随系统启动了

五、相关问题

在安装mysql时发现使用任何用户名都可以登陆mysql

是由于其初始化过程的user表的错误导致的。其中有名为“” 的用户项,因此只需要删除名为“”的用户项就可以了。

use mysql
delete from user where user="";
flush privileges;

之后再用任意用户名就不可以登陆mysql数据库了