工具准备

查看系统是否安装了yum工具:

[root@wangbo srv]# rpm -qa | grep yum
yum-metadata-parser-1.1.4-10.el7.x86_64
yum-3.4.3-161.el7.centos.noarch
yum-plugin-fastestmirror-1.1.31-50.el7.noarch

表示已经安装了,如果没有安装,可以参考:https://jingyan.baidu.com/article/ce09321bbde1de2bff858f9a.html

rpm和yum命令参考:https://www.cnblogs.com/qingjiaowoxiaoxioashou/p/7059701.html

首先检查下是否安装了服务

[root@wangbo srv]# yum list installed | grep mysql

或者

[root@wangbo srv]# rpm -qa | grep mysql

没有显示就表示没有安装,如果安装了可以删除,如下所示:

下载安装源文件

安装在 /srv/mysql/ 文件夹下。

[root@wangbo srv]# mkdir mysql
[root@wangbo srv]# cd mysql
[root@wangbo mysql]#

下载并安装MySQL官方的 Yum Repository

[root@wangbo mysql]# wget -i -c http://dev.mysql.com/get/mysql57-community-release-el7-10.noarch.rpm

文件是红色的,需要修改文件权限,修改完会看到文件变绿色了。

[root@wangbo mysql]# chmod 755 mysql57-community-release-el7-10.noarch.rpm

开始安装mysql源文件

[root@wangbo mysql]# yum install -y mysql57-community-release-el7-10.noarch.rpm

接下来会显示安装过程,最后显示Complete! 的时候就表示安装好了。

检查mysql源是否安装成功

[root@wangbo mysql]# yum repolist enabled | grep "mysql.*-community.*"

看到上图所示表示安装成功。

安装mysql数据库

开始安装数据库服务

[root@wangbo mysql]# yum install -y mysql-community-server

接下来会显示安装过程。最后显示Complete! 的时候就表示安装好了。

启动MySQL数据库

[root@wangbo mysql]# systemctl start mysqld

查看数据库状态

[root@wangbo mysql]# systemctl status mysqld

数据库设置

设置开机启动

[root@wangbo mysql]# systemctl enable mysqld

通知systemd重载配置文件,如果是在启动mysql服务之前设置的,则不需要这一步了。

[root@wangbo mysql]# systemctl daemon-reload

修改密码策略

mysql共有以下几种密码策略:

策略 检查规则
0 or LOW Length
1 or MEDIUM Length; numeric, lowercase/uppercase, and special characters
2 or STRONG Length; numeric, lowercase/uppercase, and special characters; dictionary file

在 /etc/my.cnf 文件添加validate_password_policy配置,指定密码策略

[root@wangbo mysql]# vi /etc/my.cnf

按 i 进入编辑状态

# 选择0(LOW),1(MEDIUM),2(STRONG)其中一种,选择2需要提供密码字典文件
validate_password_policy=0

如果不需要密码策略,添加 my.cnf 文件中添加如下配置禁用即可:

validate_password = off

我们这里选择禁用密码策略,按 ESC,然后 :wq! 保存退出。

重新启动mysql服务使配置生效:

[root@wangbo mysql]# systemctl restart mysqld

修改root用户默认密码

mysql安装完成之后,在/var/log/mysqld.log文件中给root生成了一个默认密码。通过下面的方式找到root默认密码,然后登录mysql进行修改:

[root@wangbo mysql]# grep 'temporary password' /var/log/mysqld.log
2019-03-29T09:43:27.569868Z 1 [Note] A temporary password is generated for root@localhost: h<zuy>K-I6RD

用该密码登录数据库,红框中输入上面查询到的默认密码 h<zuy>K-I6RD

[root@wangbo mysql]# mysql -u root -p

使用SQL修改密码

mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'xxxxxxxx';

如果提示下面内容,表示修改成功

Query OK, 0 rows affected (0.00 sec)

如果密码太简单则会报一个错误,这就涉及到密码策略的修改了。所以我们这一步应该放在修改密码策略之后做。

ERROR 1819 (HY000): Your password does not satisfy the current policy requirements

查看密码策略,只有修改完密码才能执行SQL,不然会报一个错误。

mysql> show variables like '%password%';

如果没有修改完密码,会报以下错误,提示必须先修改密码。

ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing this statement.

如果修改完密码了,则会显示查询结果。

添加远程登录用户

默认只允许root帐户在本地登录,如果要在其它机器上连接mysql,必须修改root允许远程连接,或者添加一个允许远程连接的帐户,为了安全起见,我添加一个新的帐户:

mysql> GRANT ALL PRIVILEGES ON *.* TO 'test'@'%' IDENTIFIED BY '123456789' WITH GRANT OPTION;

提示添加成功

Query OK, 0 rows affected, 1 warning (0.00 sec)

配置默认编码

这一步一般不需要,默认的就是utf-8。

查看数据库默认编码如下所示:

mysql> show variables like '%character%';

修改/etc/my.cnf配置文件,在[mysqld]下添加编码配置,如下所示:

[mysqld]
character_set_server=utf8
init_connect='SET NAMES utf8'

重新启动mysql服务使配置生效:

systemctl restart mysqld

阿里云设置

开启服务器端口

接下来我用Navicate For MySQL 连接数据库,报了10038的连接错误,是远程服务器3306端口未开放。

所以登录阿里云后台管理,找到安全组规则,添加一个安全组规则,

新建数据库

使用Navicate连接上数据库后,新建一个数据库

注意排序规则的选择:

utf8_unicode_ci和utf8_general_ci对中、英文来说没有实质的差别。

utf8_general_ci 校对速度快,但准确度稍差。

utf8_unicode_ci 准确度高,但校对速度稍慢。

如果你的应用有德语、法语或者俄语,请一定使用utf8_unicode_ci。一般用utf8_general_ci就够了。

附:

ci是 case insensitive, 即 "大小写不敏感", a 和 A 会在字符判断中会被当做一样的;

bin 是二进制, a 和 A 会别区别对待。

例如你运行:

SELECT * FROM table WHERE txt = 'a'

那么在utf8_bin中你就找不到 txt = 'A' 的那一行, 而 utf8_general_ci 则可以。

utf8_general_ci 不区分大小写,这个你在注册用户名和邮箱的时候就要使用。

utf8_general_cs 区分大小写,如果用户名和邮箱用这个 就会照成不良后果。

utf8_bin 字符串每个字符串用二进制数据编译存储。 区分大小写,而且可以存二进制的内容。

错误记录

mysql设置sql_mode

安装好后,我用Navicate连接上了数据库,但是每次执行SQL一直报一个错误,执行结果却是正确的。

错误如下:

[Err] 1055 - Expression #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

参考博客地址:https://www.cnblogs.com/skymyyang/p/7551646.html

解决办法:

(1)直接通过SQL语句进行设置。

#查看数据库版本和sql_mode
select VERSION(),@@sql_mode;
#将ONLY_FULL_GROUP_BY设置为空
SET sql_mode=(SELECT REPLACE(@@sql_mode,'ONLY_FULL_GROUP_BY',''));

这样设置后我发现重新连接后又恢复了,所以还是直接修改配置文件吧。

(2)修改 my.cnf 配置文件

首先查询出数据库的sql_mode

select VERSION(),@@sql_mode;
ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION

在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'

具体操作

在 /etc/my.cnf 文件添加 sql_mode 配置

[root@wangbo mysql]# vi /etc/my.cnf

按 i 进入编辑状态,添加下列内容

sql_mode='STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION'

按 ESC,然后 :wq! 保存退出。

重新启动mysql服务使配置生效:

[root@wangbo mysql]# systemctl restart mysqld

使用Navicate连接报1130错误

错误:ERROR 1130: Host '192.168.1.3' is not allowed to connect to thisMySQL serve

错误1130:主机192.168.1.3”不允许连接到thismysql服务

原因:被连接的数据不允许使用 192.168.1.3访问,只允许是用 localhost;

解决办法:

可能是你的帐号不允许从远程登陆,只能在localhost。这个时候只要在localhost的那台电脑,登入mysql后,更改"mysql" 数据库里的 "user" 表里的 "host"项,从"localhost"改称"%"

1、启用 cmd

输入 : mysql -u -root -p

若是提示 ‘mysql’不是内部或外部命令,也不是可运行的程序.那需要配置环境变量  在配置 path 变量添加 “……\mysq\/MYSQL Server5.7\bin”

总体运行语句:

mysql -u root -p

mysql>use mysql;

mysql>select 'host' from user where user='root';

mysql>update user set host = '%' where user ='root';

mysql>flush privileges;

mysql>select 'host'   from user where user='root';

运行完毕后再次连接测试,若还不行重启mysql服务,或是直接重启电脑。

MySQL-5.7.19 在阿里云 CentOS-7.0 上的安装的更多相关文章

  1. [转]阿里云CentOS 7.1使用yum安装MySql5.6.24

    阿里云CentOS 7.1使用yum安装MySql5.6.24 作者:vfhky | 时间:2015-06-25 09:43 | 分类:web 在前面两篇文章<2015博客升级记(四):Cent ...

  2. 阿里云CentOS Linux服务器上搭建邮件服务器遇到的问题

    参考文章: 阿里云CentOS Linux服务器上用postfix搭建邮件服务器 Linux系统下邮件服务器的搭建(Postfix+Dovecot) 本来想自己搭建邮件服务器,但是看到一篇资料表示阿里 ...

  3. 阿里云centos postgresql9.4源码安装 精简步骤、问题解答

    阿里云centos环境源码安装postgresql9.4 本文的安装步骤主要来源于http://www.cnblogs.com/mchina/archive/2012/06/06/2539003.ht ...

  4. 转-阿里云CentOS Linux服务器上用postfix搭建邮件服务器

    http://www.cnblogs.com/dudu/archive/2012/12/12/linux-postfix-mailserver.html 注:本文的邮件服务器只用于发送邮件,也就是ST ...

  5. 阿里云Centos 7 FTP(vsftp)服务安装及配置

    #检查vsftpd是否安装 rpm -qa | grep vsftpd #检查vsftpd版本并安装 yum list vsftpd yum install vsftpd #设置开机启动 system ...

  6. 阿里云CentOS 7.1使用yum安装MySql5.6.24

    正确的安装方法: 众所周知,Linux系统自带的repo是不会自动更新每个软件的最新版本(基本都是比较靠后的稳定版),所以无法通过yum方式安装MySQL的高级版本.所以我们需要先安装带有当前可用的m ...

  7. 阿里云centos 6.5 32位安装可视化界面的方法

    http://www.dzbfsj.com/forum.php?mod=viewthread&tid=2702 http://www.mayanpeng.cn/?p=507 http://bl ...

  8. 阿里云CentOs服务器 安装与配置mysql数据库

    阿里云CentOs服务器 安装与配置mysql数据库 以上为Linux安装mysql数据库 Linux 安装mysql 数据库 一下为mysql 安装教程 Using username "r ...

  9. 阿里云centos中mysql的安装及一些常识知识

    -------------------------------------------------------------------    阿里云centos中mysql的安装 工具WinSCP v ...

  10. 阿里云CentOS自动备份MySql 8.0并上传至七牛云

    本文主要介绍一下阿里云CentOS7下如何对MySql 8.0数据库进行自动备份,并使用.NET Core 将备份文件上传至七牛云存储上,并对整个过程所踩的坑加以记录. 环境.工具.准备工作 服务器: ...

随机推荐

  1. canvas的使用方法

    了解canvas:canvas标签是用作图形绘制,但是通过js脚本来实现的,canvas标签其实只是一个容器 ,最终实现绘制功能肯定是通过js脚本实现. 首先肯定要定义一个canvas标签当做容器 & ...

  2. 算法 BF算法

    BF算法是字符匹配的一种算法,也称暴力匹配算法 算法思想: 从主串s1的pos位置出发,与子串s2第一位进行匹配 若相等,接着匹配后一位字符 若不相等,则返回到s1前一次匹配位置的后一位,接着与s2的 ...

  3. 人脸检测(1)——HOG特征

    一.概述 前面一个系列,我们对车牌识别的相关技术进行了研究,但是车牌识别相对来说还是比较简单的,后续本人会对人脸检测.人脸识别,人脸姿态估计和人眼识别做一定的学习和研究.其中人脸检测相对来说比较简单, ...

  4. Movavi Video Editor 15 Plus Mac怎样更改视频的分辨率?

    使用Movavi Video Editor 15您可以对视频进行切割和修剪,裁剪和旋转,色度键,视频稳定以及画中画等很多的编辑,该软件操作简单,就算是新手也无需担心操作问题,本文讲述了Movavi V ...

  5. [Jenkins Git] 在Jenkins上拉代码总是失败,跑去本地看,提示输入用户名和密码,但是Jenkins上已经配置了正确的用户名和密码

    git config --global credential.helper manager

  6. Unity - Photon PUN 本地与网络同步的逻辑分离 (二)

    上篇实现了事件系统的设计,这篇就来结合发送RPC消息 并且不用标记 [PunRPC] 先来看下上编的代码 GameEnvent.cs private static Dictionary<Comm ...

  7. Python Day 12

    阅读目录: 内容回顾 函数默认值的细节 三元表达式 列表与字典推导式 函数对象 名称空间 函数嵌套的定义 作用域 ##内容回顾 # 字符串的比较 -- 按照从左往右比较每一个字符,通过字符对应的asc ...

  8. CoUninitialize引发的一个错误

    程序开始已使用CoUninitialize,后边的函数又再次调用CoUninitialize,判断返回值,导致函数提前退出返回异常.

  9. 15. Life Cycle of the Products 产品的生命周期

    15. Life Cycle of the Products 产品的生命周期 (1) We can see how the product life cycle works by looking at ...

  10. PHP PDO预定义常量

    以下常量由本扩展模块定义,因此只有在本扩展的模块被编译到PHP中,或者在运行时被动态加载后才有效. 注意: PDO使用类常量自PHP 5.1.以前的版本使用的全局常量形式PDO_PARAM_BOOL中 ...