环境介绍>>>>>>>>>>>>>>>>>>
操作系统:Centos 7.1
mysql数据库版本:mysql5.7.9
mysql官方网站:http://www.mysql.com
原文地址:http://www.cnblogs.com/5201351/p/4912614.html
------------------------------------------
1、安装新版mysql之前,我们需要将系统自带的mariadb-lib卸载
[root@5201351 ~]# rpm -qa|grep mariadb mariadb-libs-5.5.41-2.el7_0.x86_64 [root@5201351 ~]# rpm -e mariadb-libs-5.5.41-2.el7_0.x86_64 --nodeps
2、到mysql的官网下载最新版mysql的rpm集合包:mysql-5.7.9-1.el7.x86_64.rpm-bundle.tar
3、上传mysql-5.7.9-1.el7.x86_64.rpm-bundle.tar到linux服务器,并解压tar包
4、其中最简单的安装mysql-server服务,只需要安装如下4个软件包即可,我们可以使用rpm -ivh命令进行安装
mysql-community-common-5.7.9-1.el7.x86_64.rpm
mysql-community-libs-5.7.9-1.el7.x86_64.rpm --(依赖于common)
mysql-community-client-5.7.9-1.el7.x86_64.rpm --(依赖于libs)
mysql-community-server-5.7.9-1.el7.x86_64.rpm --(依赖于client、common)
5、接下来是初始化数据库,我们使用如下几条命令均可,效果都是一样的
[root@5201351 ~]# mysql_install_db --datadir=/var/lib/mysql //必须指定datadir,执行后会生成~/.mysql_secret密码文件 [root@5201351 ~]# mysqld --initialize //新版的推荐此方法,执行生会在/var/log/mysqld.log生成随机密码
另外 --initialize
选项默认以“安全”模式来初始化,则会为 root 用户生成一个密码并将该密码标记为过期,登陆后你需要设置一个新的密码,而使用 --initialize-insecure
命令则不使用安全模式,则不会为 root 用户生成一个密码。
这里演示使用的 --initialize
初始化的,会生成一个 root 账户密码,密码在log文件里,红色区域的就是自动生成的密码
[root@linux_node_1 src]# cat /var/log/mysqld.log
2017-07-30T03:27:25.981997Z 0 [Warning] InnoDB: New log files created, LSN=45790
2017-07-30T03:27:26.227221Z 0 [Warning] InnoDB: Creating foreign key constraint system tables.
2017-07-30T03:27:26.436181Z 0 [Warning] No existing UUID has been found, so we assume that this is the first time that this server has been started. Generating a new UUID: 025a70eb-74d7-11e7-8b38-000c298f43f2.
2017-07-30T03:27:26.445426Z 0 [Warning] Gtid table is not ready to be used. Table 'mysql.gtid_executed' cannot be opened.
2017-07-30T03:27:26.445987Z 1 [Note] A temporary password is generated for root@localhost: e1BqRK3.&w!g
6、更改mysql数据库目录的所属用户及其所属组,然后启动mysql数据库
[root@5201351 ~]# chown mysql:mysql /var/lib/mysql -R [root@5201351 ~]# systemctl start mysqld.service //启动mysql数据库服务
7、根据第5步中的密码登录到mysql,更改root用户的密码,新版的mysql在第一次登录后更改密码前是不能执行任何命令的
#查看一次性随机密码
cat /var/log/mysqld.log
2017-07-30T03:27:26.445987Z 1 [Note] A temporary password is generated for root@localhost: e1BqRK3.&w!g
#修改密码
[root@arjenlee ~]# mysql -uroot -p'e1BqRK3.&w!g'
mysql> set password=password('http://www.cnblogs.com/arjenlee/');
8、最后我们还可以根据实际情况创建用户,及作权限分配
mysql> create user 'root'@'192.168.100.2' identified by 'QQ5201351'; mysql> GRANT ALL PRIVILEGES ON dbname.* to 'root'@'192.168.100.2'; mysql> flush privileges
==============================================
最后需要特别提醒注意的一点是,新版的mysql数据库下的user表中已经没有Password字段了,
而是将加密后的用户密码存储于authentication_string字段
尊重别人的劳动成果 转载请务必注明出处:http://www.cnblogs.com/5201351/p/4912614.html