阿里云linux6.9 64位安装mysql5.7.23记录

1.检测是否已经安装了mysql

  rpm -qa | grep mysql

  如果安装了就将其卸载,命令:rpm -e --nodeps  软件名

  比如:rpm -e --nodeps  mysql-libs-5.1.71-1.el6.x86_64

2.下载mysql 下载地址:https://dev.mysql.com/downloads/mysql/

https://dev.mysql.com/downloads/mysql/5.7.html#downloads

3.准备工作

  mkdir /usr/local/mysql

  mv mysql-5.7.23-1.el6.x86_64.rpm-bundle.tar /usr/local/mysql

  cd /usr/local/mysql/

4解压:tar -xvf mysql-5.7.23-1.el6.x86_64.rpm-bundle.tar

5.开始安装

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

  一般会报缺少依赖,需要我们安装,把下面这些却的都安装上,命令:yum -y install  依赖包    比如:yum -y install libaio.so.1

 

如果过程出现如下所示,表示需要升级依赖 ,命令:yum  update 名称 ,比如:yum  update libstdc++-4.4.7-4.el6.x86_64

如果还出现别的情况,请百度

6.正式开始安装了 

  运行命令 rpm -ivh mysql-community-server-5.7.23-1.el6.x86_64.rpm,如下图说明需要先安装这几部分才能安装mysql-community-server-5.7.23-1.el6.x86_64.rpm,跟着提示安装即可

运行命令如下:

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

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

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

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

 7.安装后查询MySQL服务状态  命令:service mysqld status,如下图:

 输入命令:service mysqld start 启动mysql,如下图,另外常用的还有,service mysqld restart用来重启mysql,service mysqld stop用来停止mysql

8.查看MySQL第一次按时生成的随机密码:

  查看日志:cat /var/log/mysqld.log,找到密码

9.登录:

用该零时密码登陆必须要马上修改的,不然会报错,如下:

修改密码:SET PASSWORD = PASSWORD('123456');  密码不符合规则也报错,但是我就想使用123456,怎么办?

修改密码校验规则,输入下面两行命令

  set global validate_password_policy=0;

  set global validate_password_length=1;

然后修改密码:SET PASSWORD = PASSWORD('123456');

10.设置系统启动时自动启动mysql

  加入到系统服务:chkconfig --add mysqld

  自动启动:chkconfig mysqld on

  查询列表:chkconfig

说明:都没关闭(off时是没有自动启动。

11.然后本机用SQLyog来连接阿里云的我们安装的MySQL,navicat也一样的

会发现连接失败

12. 打开阿里云控制台做如下设置,然后连接,不行就重启下

 

 大功告成了!

 问题:mysql只能本地登陆,无法远程登陆

 解决:

在本地登陆MySQL服务后 

show databases;    查看数据库并进入mysql数据库  use mysql;

然后查看用户表    select Host, User  from user;

输出如下,这几个用户都只能本地登陆

mysql> select Host, User from user;
+-----------+---------------+
| Host | User |
+-----------+---------------+
| localhost | mysql.session |
| localhost | mysql.sys |
| localhost | root |
+-----------+---------------+
3 rows in set (0.00 sec)

然后修改表数据

update user set Host='%' where User='root';

然后刷新

flush privileges;

完工就可以使用root用户远程登陆了

如果上面的还是无法远程登陆,可以试试如下的操作,当我觉得阿里云控制台做的就时设置防火墙的问题,这里记录下,以防万一:

1.登录mysql:

  mysql -uroot –p123456

2.设置远程访问(使用root密码):

  grant all privileges on *.* to 'root' @'%' identified by '123456';

  flush privileges;

3.防火墙打开3306端口

  /sbin/iptables -I INPUT -p tcp --dport 3306 -j ACCEPT

  /etc/rc.d/init.d/iptables save

  /etc/init.d/iptables status

navicate 执行语句时可能会报如下错误

1 of ORDER BY clause is not in GROUP BY clause and contains nonaggregated column 'information_schema.PROFILING.SEQ' which is not functionally dependent on columns in GROUP BY clause; this is incompatible with sql_mode=only_full_group_by

修改 my.cnf 文件的 sql_mode

获取 sql_mode字段内容: SELECT @@sql_mode;
去掉 sql_mode字段中的 only_full_group_by
获得最终要添加的字段
sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
在 my.cnf中添加该字段

查找 my.cnf 文件: find / -name my.cnf 或者 whereis my.cnf
编辑 my.cnf: vim /etc/my.cnf 将上一步骤的 sql_mode 字段内容添加至 my.cnf
保存,重启: service mysqld restart

原文地址:https://www.cnblogs.com/ENU7/p/9460732.html