CentOS6.6系统下以RPM方式安装mysql-5.7.9

时间:2022-05-26 10:02:24

说明:

从MySQL5.7.4起,以RPM包的方式安装后的MySQL的部署,默认是安全的,并且有这些特点:

1. 在大多数情况下,你只需要安装MySQL-server和MySQL-client安装包就可以安装上一个标准功能的MySQL。

    对于一个标准安装来说,其他的安装包不是必需的。

2. MySQL的安装程序会创建一个单独的root账户:'root'@'localhost',并自动为这个账户生成一个初始的随机密码,

    并将此密码标志为已过期。

3. 对于MySQL5.7.6和更高的版本来说,初始的随机root密码是被写入错误日志的。

    对于MySQL5.7.4和5.7.5版本来说,密码是被写入以HOME环境变量命名的目录中的.mysql_secret文件中的。

mysql_secret文件是以只允许创建它的系统用户访问的600模式而创建的。

    版本差异的产生,是因为自5.7.6版本起,数据目录和root账户由mysqld --initialize来初始化,

    5.7.6以前的版本由mysql_install_db来初始化)。

4. 不创建MySQL匿名账户。

            不创建测试数据库。

作为上述操作所产生的结果,在安装完成后你需要去启动服务,以root身份,用初始的随机密码来进行连接,

并且在连接后选择一个新的密码。在完成这些操作之前,root用户无法做其他的任何事情


---------------------------------------------------------------------------------------------------------------------------------------------


1. 创建一个名为mysql且没有登录权限的用户和一个名为mysql的用户组

groupadd -r mysql                         

useradd -r -g mysql -s /bin/false -M mysql

2. 卸载掉原有mysql

#查看该操作系统上是否已经安装了mysql数据库

rpm -qa | grep mysql

#通过 rpm -e 命令 或者 rpm -e --nodeps 命令卸载

rpm -e mysql   // 普通删除模式
rpm -e --nodeps mysql
   //  强力删除模式(包括依赖包)

#如果没有安装,只是有包,则remove

yum -y remove mysql-libs

#查看卸载是否成功

rpm -qa | grep mysql

3. 下载mysql安装包

http://dev.mysql.com/downloads/mysql/

4. 解压至指定目录

tar xvf mysql-5.7.9-1.el6.x86_64.rpm-bundle.rar -C /usr/local/src

5. 使用rpm软件包安装mysql

#安装依赖包

rpm -ivh mysql-community-common-5.7.9-1.el6.x86_64.rpm

rpm -ivh mysql-community-libs-5.7.9-1.el6.x86_64.rpm

#安装客户端

rpm -ivh mysql-community-client-5.7.9-1.el6.x86_64.rpm 

#安装服务端

rpm -ivh mysql-community-server-5.7.9-1.el6.x86_64.rpm

6. 根据/etc/my.cnf创建相应的文件,并授权

mkdir -p /var/run/mysql 

mkdir -p /var/log/mysql

chown -R mysql:mysql /var/log/mysql 

chown -R mysql:mysql /var/run/mysql

注:/etc/my.cnf中没有basedir路径,需要添加

basedir=/usr/local/mysql

7. 初始化数据库

cd /usr/bin

#会为root账户生成一个随机的初始密码( 密码位置:/var/log/mysqld.log )

#使用命令:mysql -u root -p,然后输入密码来登录MySQL

mysqld --initialize --user=mysql

#不会为root账户生成一个随机的初始密码

#使用命令:mysql -u root --skip-password直接登录MySQL

mysqld --initialize-insecure --user=mysql

初始化时,mysqld服务会检查数据目录是否存在:

如果数据目录不存在,mysqld则会创建它。

如果数据目录存在,且不是空目录(即包含有文件或子目录),mysqld会显示一条错误信息并中止:

[ERROR] --initialize specified but the data directory exists. Aborting.

解决方案: 将数据目录重命名后,重新再初始化一次 mv /var/lib/mysql  /var/lib/mysql.bak8. 

8. 配置mysql服务开机自动启动

#检查自启动项列表中没有mysqld这个,如果没有就添加mysqld:

chkconfig --list mysqld

chkconfig --add mysqld

#设置开机启动

chkconfig mysqld on

8. 启动mysql

#启动mysqld服务

service mysqld start

#检查mysqld是否已经启动

service mysqld status

9. 修改mysql用户密码(初始root密码文件在/var/log/mysqld.log)

mysql -uroot-p

mysql> alter user 'root'@'localhost' identified by 'Mysql.123';

10. 已root用户身份登录

mysql -uroot -pMysql.123