CentOS7安装MySQL5.7

添加mysql用户,不让该用户登录,也没有主目录

groupadd mysql
useradd -s /sbin/nologin -M -g mysql mysql

解压mysql二进制文件,并移动到/usr/local/mysql目录中,并将该目录的用户和组变为mysql

tar zxvf mysql-5.7.17-linux-glibc2.5-x86_64.tar.gz
mv mysql-5.7.17-linux-glibc2.5-x86_64 /usr/local/mysql

chown -R mysql:mysql /usr/local/mysql

初始化MySQL数据库,5.7版本是使用的是mysqld工具初始化MySQL数据库,--datadir选项表示mysql数据库文件存放的位置。初始化完成后,会给一个root用户的临时密码。设置--datadir=/usr/local/mysql/data时,我的二进制包中已有该目录,所以要删掉rm -rf /usr/local/mysql/data

/usr/local/mysql/bin/mysqld --initialize --user=mysql --datadir=/usr/local/mysql/data --basedir=/usr/local/mysql

# mysql root的临时密码
# A temporary password is generated for root@localhost: acq:l-Mr?4d?

启动Mysql

/usr/local/mysql/support-files/mysql.server start

# root用户登录
/usr/local/mysql/bin/mysql -uroot -p

我在登录时,遇到root密码过期的情况,解决办法为,将/usr/local/mysql/support-files/my-default.cnf文件拷贝到/etc目录中,并改名为my.cnf。编辑my.cnf添加skip-grant-tables参数,然mysql在启动时跳过授权表,这样就可以免密登录mysql了

cp /usr/local/mysql/support-files/my-default.cnf /etc/my.cnf
vim /etc/my.cnf
#添加 skip-grant-tables 参数

重启MySQL后,可以免密登录

/usr/local/mysql/support-files/mysql.server restart

/usr/local/mysql/bin/mysql -uroot

修改root用户的密码(这里是6个a),密码为不过期。

use mysql;

update user set authentication_string=password('aaaaaa'), password_expired='N' where user='root';
flush privileges;

如果临时密码没有过期,登录后需要修改root密码:

alter user user() identified by "aaaaaa";

修改密码完成后,将/etc/my.cnf文件中的ship-grant-tables参数取消。然后重启mysql。

为了便于启动,可以做以下的连接,将support-files/mysql.server连接到/etc/init.d目录中,这样就可以使用server mysql start|stop|restart来管理MySQL服务。

ln -s /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql

如果,mysql没有添加到/usr/bin/目录中,可以手动的将mysql/bin/mysql连接到/usr/bin/mysql,这样可以在命令行快速的启动MySQL客户端。这里要注意,做连接的时候需要使用全路径。

ln -s /usr/local/mysql/bin/mysql /usr/bin/mysql

你可能感兴趣的:(CentOS7安装MySQL5.7)