安装前

确保你没有安装过mysql

1
[root@localhost /]# rpm -qa | grep mysql

安装过的话:

1
[root@localhost /]# rpm -e --nodeps mysql-libs-5.1.73-5.el6_6.x86_64

然后再次执行查看是否删除:

1
[root@localhost /]# rpm -qa | grep mysql

针对第一次开始安装mysql的服务器,这里不建议删除所有关于mysql的文件夹,但是如果你执意的话:

查询所有mysql的文件夹:

1
2
[root@localhost /]# whereis mysql
[root@localhost /]# find / -name *mysql*

然后删除你找到的所有目录。

1
[root@localhost /]# rm -rm 你的目录

检查你的mysql用户,用户组是否存在

1
2
[root@localhost /]# cat /etc/group | grep mysql
[root@localhost /]# cat /etc/passwd |grep mysql

没有显示结果的话就是没有,需要创建:

1
2
[root@localhost /]# groupadd mysql
[root@localhost /]# useradd -r -g mysql mysql
1
2
3
4
5
6
7
8
9
10
11
12
13
-c<备注>  加上备注文字。备注文字会保存在passwd的备注栏位中。
-d<登入目录>  指定用户登入时的起始目录。
-D  变更预设值.
-e<有效期限>  指定帐号的有效期限。
-f<缓冲天数>  指定在密码过期后多少天即关闭该帐号。
-g<群组>  指定用户所属的群组。
-G<群组>  指定用户所属的附加群组。
-m  自动建立用户的登入目录。
-M  不要自动建立用户的登入目录。
-n  取消建立以用户名称为名的群组.
-r  建立系统帐号。
-s<shell>   指定用户登入后所使用的shell。
-u<uid>  指定用户ID。

安装mysql

找个目录,下载你的mysql:

1
[root@localhost /]# wget https://mirrors.yangxingzhen.com/mysql/mysql-5.7.28.tar.gz

需要解压:

1
[root@localhost /]#  tar xzvf mysql-5.7.28.tar.gz

在你解压出来的mysql文件夹中,创建data文件夹

1
[root@localhost /]# mkdir /usr/local/mysql/data

把这个目录包括其下所有文件设置权限和所属:

1
2
[root@localhost /]# chown -R mysql:mysql /usr/local/mysql
[root@localhost /]# chmod -R 755 /usr/local/mysql

编译,初始化:

初始化之后,最后一行左右会出现一个初始化密码,记住它,不记住的话,也没事,不过会麻烦一点点

1
2
[root@localhost /]# cd /usr/local/mysql/bin
[root@localhost bin]# ./mysqld --initialize --user=mysql --datadir=/usr/local/mysql/data --basedir=/usr/local/mysql

初始化这里可能会报错,查看错误结果需要安装一个依赖软件:

1
[root@localhost bin]#  yum install  libaio*

设置配置文件:

1
[root@localhost bin]#  vi /etc/my.cnf
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
[mysqld]
#skip-grant-tables
datadir=/usr/local/mysql/data
port=3306
max_connections=600
innodb_file_per_table=1
lower_case_table_names=1
socket=/var/lib/mysql/mysql.sock

[client]
default-character-set=utf8
socket=/var/lib/mysql/mysql.sock

[mysql]
default-character-set=utf8
socket=/var/lib/mysql/mysql.sock

这三个一个都不能缺,并且要将配置文件中的存在的目录创建,然后通过指令: chown -R mysql:mysql /var/lib/mysql/ 设置为mysql的所属权

测试是否成功(不成功就会报错的,红字):

1
[root@localhost /]# /usr/local/mysql/support-files/mysql.server start

添加软连接,然后重启服务:

1
2
3
[root@localhost /]#  ln -s /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql 
[root@localhost /]# ln -s /usr/local/mysql/bin/mysql /usr/bin/mysql
[root@localhost /]# service mysql restart

登录mysql:

这里会出现两种情况,首先是当你的密码你记住了,但是你输入了却报错,第二种是你的密码你忘记了。

密码正确,但报错:

我遇到过两种问题,首先是你的密码中包含特殊字符,比如 ) 这个时候,只需要在括号左边加个转义符 \ ) 就可以了。

第二种:检查你的my.cnf 这里面的目录文件夹你必须创建 ,文件底部还会有个mysql_safe 的配置,那个是日志文件夹,你也要配置。

密码忘记了:

首先在你的 my.cnf 中的 mysqld中 添加配置

skip-grant-tables

这样你登录mysql的时候,输入 mysql -uroot -p 就可以直接进入了,然后重新设置密码:

1
mysql>set password for root@localhost = password('你想要重新设置的密码');

开启远程连接(不开就无法用别的软件链接mysql):

1
2
3
mysql>use mysql;
msyql>update user set user.Host='%' where user.User='root';
mysql>flush privileges;

开机自动启动:

1
2
3
4
5
6
7
8
[root@iZ2ze6m4f72i5mvbs06zguZ profile.d]# cd /usr/local/mysql/support-files/
[root@iZ2ze6m4f72i5mvbs06zguZ support-files]# ls
magic mysqld_multi.server mysql-log-rotate mysql.server
[root@iZ2ze6m4f72i5mvbs06zguZ support-files]# cp mysql.server /etc/init.d/mysqld
[root@iZ2ze6m4f72i5mvbs06zguZ support-files]# chmod +x /etc/init.d/mysqld
[root@iZ2ze6m4f72i5mvbs06zguZ support-files]# chkconfig --add mysqld
[root@iZ2ze6m4f72i5mvbs06zguZ support-files]# chkconfig --list

完毕