温馨提示

下载mysql安装包

shell>wget -community-release-el7-8.noarch.rpm

shell>yum localinstall mysql57-community-release-el7-8.noarch.rpm

安装mysql

shell>yum install mysql-community-server

启动mysql

shell>systemctl start mysqld

当mysql安装完成后不知道密码时可以按照以下方法重置密码:

修改 /etc/my.cnf,在 [mysqld] 小节下添加一行:

skip-grant-tables=1

这一行配置让 mysqld 启动时不对密码进行验证

重启 mysqld 服务:systemctl restart mysqld

使用 root 用户登录到 mysql:mysql -u root

切换到mysql数据库,

更新 user 表:

update user set authentication_string = password('密码'), password_expired = 'N', password_last_changed = now() where user = 'root';

在之前的版本中,密码字段的字段名是 password,5.7版本改为了 authentication_string

退出 mysql,编辑 /etc/my.cnf 文件,删除 skip-grant-tables=1 的内容

重启 mysqld 服务,再用新密码登录即可

防火墙开放3306端口

shell>firewall-cmd --zone=public --add-port=3306/tcp --permanent

允许任意ip远程使用root用户连接

mysql>GRANT ALL ON *.* TO [你远程登录的用户名]@'%' IDENTIFIED BY '远程访问的密码' WITH GRANT OPTION;

尝试一下,如果还是远程登录不了,那么请继续第三步:

3. 编辑/etc/my.conf文件

shell>vim /etc/my.conf

在打开的配置文件中添加:

bind-address=0.0.0.0

在MySQL的配置文件/etc/my.cnf中的[mysqld]下加入

skip-name-resolve

重新启动,再远程连接读写就正常了。

mysql5.7之后,项目中原来一些运行正常的分组查询语句执行异常,错误编码1055,错误信息和sql_mode中的“only_full_group_by“有关,mysql5.7中only_full_group_by这个模式是默认开启的 解决办法:

修改my.cnf(windows下是my.ini)配置文件。

打开mysql命令行,执行命令

mysql>select @@sql_mode

这样就可以查出sql_mode的值,复制这个值,在my.cnf中添加配置项(把查询到的值删掉only_full_group_by这个选项,其他的都复制过去):

sql_mode=STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION

如果 [mysqld] 这行被注释掉的话记得要打开注释。

然后重重启mysql服务 。