从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用户无法做其他的任何事情
------------------------------------------------------------------------------------------------
Linux系统:CentOS 6.6
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安装包
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