Mysql安装教程

mysql是一个关系型数据库管理系统,属于Oracle旗下产品,是当前最好的RDBMS(Relational Database Management System,关系数据库管理系统)数据库应用软件之一。

阅读需知

$开头的shell命令为用户执行的命令

斜体文本为注意事项

安装环境以及版本

Suse: SUSE Linux Enterprise Server 11 ( x86_64 )

Mysql: mysql-5.7.23-1.sles11.x86_64.rpm-bundle

创建mysql用户

1
2
#用root用户创建mysql用户
$useradd -r -s /sbin/nologin mysql

上传安装包

1
2
3
4
5
#进入home目录
$cd /home

#创建临时目录
$mkdir tmp

上传mysql安装包mysql-5.7.23-1.sles11.x86_64.rpm-bundle.tar/home/tmp目录。

安装前检查

1
2
#检查系统是否安装过mysql
$rpm -qa | grep mysql

如果存在以下包名,则说明安装过mysql

mysql-community-libs-5.7.23-1.sles11

mysql-community-client-5.7.23-1.sles11

mysql-community-server-5.7.23-1.sles11

mysql-community-common-5.7.23-1.sles11

如果系统安装过mysql需要对原来的mysql进行卸载,由于mysql各个安装包存在依赖关系,需要安装一定的顺序卸载安装包。

1
2
3
4
$rpm -e mysql-community-server-5.7.23-1.sles11
$rpm -e mysql-community-client-5.7.23-1.sles11
$rpm -e mysql-community-libs-5.7.23-1.sles11
$rpm -e mysql-community-common-5.7.23-1.sles11

再卸载完成之后,再次使用上述命令检查mysql安装情况。

安装mysql

1
2
3
4
5
6
7
8
#进入安装包目录
$cd /home/tmp

#解压mysql安装包
$tar -xvf mysql-5.7.23-1.sles11.x86_64.rpm-bundle.tar

#安装mysql,中间过程中需要确认,输入y回车即可
$zypper install mysql-community-{server,client,common,libs}-*

启动mysql服务

1
2
#启动mysql服务
$service mysql start

如果mysql启动失败,检查是否有mysql进程运行

1
$ps aux | grep mysql

如果存在已经运行的mysql进程,则需要杀死原来的mysql进程,xxx为进程号

1
$kill -9 xxx

再次启动mysql

登录mysql

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#查看mysql日志,搜索字符串“root@localhost: xxx”,其中xxx就是root用户初始密码,如果没有密码,参考2.3.7章节
$vi /var/log/mysql/mysqld.log

#使用root用户登录mysql,其中xxx为初始密码
$mysql -uroot -p'xxx'

#修改mysql登录密码安全限制(可选项)
mysql> set global validate_password_policy=0;
mysql> set global validate_password_length=1;

#修改root用户登录密码,xxx为修改后的密码
mysql> SET PASSWORD = PASSWORD('xxx');

#退出mysql
$exit;

#再次登录mysql,测试新密码是否有用,yyy代表新密码
$mysql -uroot -p'yyy'

日志中没有临时登录密码

修改mysql配置文件/etc/my.cnf,在最后一行添加语句skip-grant-table,保存退出后,重启mysql服务。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#重启mysql服务
$service mysql restart

#登录mysql数据库,不用输入密码,直接回车,遇到要求输入密码,再次回车,然后就可以成功登录mysql
$mysql -uroot -p

#切换数据库
mysql> use mysql;

#查询user表
mysql> select * from user;

#修改密码,其中xxx为修改后的密码
mysql> update mysql.user set authentication_string=password('xxx') where user='root';

#刷新缓存,保证立即生效
mysql> flush privileges;

#退出mysql
mysql> exit;

使用新密码登录mysql,再次检查新密码是否修改成功。