xshell安装失败_Mysql安装说明

Mysql安装说明

说明

数据库版本:MySQL Community Server 5.7.29

操作系统/位数:阿里云CentOS 7.6 64位

符号说明:【】中包含的是操作、url地址或linux命令

注:Community server 为免费版本。

注:本文中贴出的指令如果copy执行时报错,请手动输入,可能是字符乱码、空格等问题导致的。特别说明的原因是,在安装过程中,经常发现从网上copy的指令不能用,最终发现不是指令的问题,而是copy时存在空格、乱码等问题,所有手动输入就可以了。

常用指令

  • 查看查看系统位数

getconf LONG_BIT

31d506d7a69b110fdc2fed5e2acc9352.png
  • xshell屏幕清理

在安装过程中,xshell中可能存在大量的操作指令和日志,可以通过clear命令,清理xshell屏幕日志。

1370ab5b147b27f1cca08a5e0812a864.png

91f20904b19a5e5ddbd2d4df286d23a7.png
  • Mysql退出

【exit;】

c44789fafb573df586ae6f137207ab19.png

下载文件

使用rpm文件进行安装。

安装文件说明

考虑到不需要安装全部的功能,所有就没有下载bundle版本,而是单独下载的,安装文件一共有5个,说明如下:

mysql-community-common-5.7.29-1.el7.x86_64.rpm:数据库配置

mysql-community-libs-5.7.29-1.el7.x86_64.rpm:数据库共享lib库

mysql-community-client-5.7.29-1.el7.x86_64.rpm:客户端组件

mysql-community-server-5.7.29-1.el7.x86_64.rpm:服务端

mysql-community-devel-5.7.29-1.el7.x86_64.rpm:开发lib库

注:其实第5个不安装,也不影响使用。

安装文件下载

安装文件下载有两种方式 ,一种是在官网下载后,在上传到服务器上,另外一种是直接在服务器上通过命令下载,具体如下:

第一种方式

官网界面下载

1、登录官网

输入【https://dev.mysql.com/downloads/mysql/】打开官网下载界面,因为下载界面展示的是目前最新版本,我们下载的是5.7.29版本,所以,我们点击 【Looking for previous GA versions?】打开历史版本下载界面,如下图:

注:其它版本的下载操作一样。

3fe94165b9650fcd5bdc6199816e69ee.png

在历史版本下载界面,选择【5.7.29】 版本,操作系统选择【Red Hat Enterprise Linux / Oracle Linux】,操作系统版本选择【Red Hat Enterprise Linux 7 / Oracle Linux 7 (x86,64-bit)】,打开对应版本下载列表,如下图:

005e496b1e3edb560ef97ffd994ad19f.png

5c55fa0681f46358e29ced48c4e0d51f.png

点击 【Download】,打开下载界面,点击【No thanks, just start my download.】,下载文件,如下图:

c52c0331fe6ac3f01adb68b42fccf0f8.png

按照以上步骤,依次下载5个文件。

上传文件到服务器

上传下载的5个文件到linux指定目录,这里为/soft/tools/mysql。

第二种方式

定位到服务器指定路径【/soft/tools/mysql】,直接在服务器通过wget命令下载,具体如下:

cd /soft/tools/mysql

wget http://dev.mysql.com/Downloads/MySQL-5.7.29/mysql-community-common-5.7.29-1.el7.x86_64.rpm。

wget http://dev.mysql.com/Downloads/MySQL-5.7.29/mysql-community-libs-5.7.29-1.el7.x86_64.rpm

wget http://dev.mysql.com/Downloads/MySQL-5.7.29/mysql-community-client-5.7.29-1.el7.x86_64.rpm

wget http://dev.mysql.com/Downloads/MySQL-5.7.29/mysql-community-server-5.7.29-1.el7.x86_64.rpm

wget http://dev.mysql.com/Downloads/MySQL-5.7.29/mysql-community-devel-5.7.29-1.el7.x86_64.rpm

wget后面url组合方式为:【http://dev.mysql.com/Downloads/MySQL- + 版本号 + / + rpm文件名称】,rpm文件名称即下图中标红部分:

0bbe1075514f8c183c02871ddf5f9f81.png

注:/soft/tools/mysql为本人设定的路径,大家安装的时候可设置为自己想上传的路径。 注:同时如果要下载其它版本,换下版本号和rpm文件名称就可以了。

注:服务器wget方式还有个优势,即一般服务器网络比较好,下载起来速度快,并且不需要上传服务器了。

环境清理

确定安装环境是否安装了mysql或者存在mysql遗漏文件,如果存在,清理环境并删除相关文件。

1、查看相关文件

通过whereis mysql命令查看是否有mysql相关文件,【whereis mysql】

3b6f983d12751c0a28a26e1149b99da5.png
  1. 删除文件

如果存在相关文件,通过rm -rf指令删除相关路径就可以了。【rm -rf /usr/lib64/mysql】。

安装

目前使用的是默认安装,没有特别指定安装路径。

进入上文rpm保存的路径【/soft/tools/mysql】,执行相关命令安装5个rpm文件,考虑到rpm文件直接有关联关系,5个文件需要按下文顺序来安装。

  1. 进入rpm文件路径

【cd /soft/tools/mysql】

  1. 安装mysql-community-common-5.7.29-1.el7.x86_64.rpm

【rpm -ivh mysql-community-common-5.7.29-1.el7.x86_64.rpm】

9d7acb73b2fd430315561539dada3289.png

如果输入指令后,提示存在冲突,需要先卸载冲突的包,在安装,具体如下

A:存在冲突

b84fca775b2c16c6e9eb74dd771301c5.png

B:卸载冲突包

本文使用的是yum来卸载冲突包,包名就是冲突截图中的包名称。

【yum -y remove mariadb-libs-1:5.5.60-1.el7_5.x86_64】

994afa92676841a28630c44c3b335867.png
  1. 安装mysql-community-libs-5.7.29-1.el7.x86_64.rpm

【rpm -ivh mysql-community-libs-5.7.29-1.el7.x86_64.rpm】

c23f1076fefd4973463a7a233c0d3a42.png
  1. 安装mysql-community-client-5.7.29-1.el7.x86_64.rpm

【rpm -ivh mysql-community-client-5.7.29-1.el7.x86_64.rpm】

fae89c8075b30d23404d1acf1b4facfb.png
  1. 安装mysql-community-server-5.7.29-1.el7.x86_64.rpm

【rpm -ivh mysql-community-server-5.7.29-1.el7.x86_64.rpm】

121d91a4414f34e71456b8aa06618420.png
  1. 安装mysql-community-devel-5.7.29-1.el7.x86_64.rpm

【rpm -ivh mysql-community-devel-5.7.29-1.el7.x86_64.rpm】

fa441b7d702ff9a6698ac4ed07752a26.png
  1. 查看安装状态

【service mysqld status】

5个rpm文件安装完成后,如果不报错,mysql就安装成功了

通过service mysqld status命令查看mysql状态,可以看到当前mysql相关信息及状态,因为没有启动,目前是inactive状态。

350b4de611e7ddd85d89a3312fc015f6.png

启动

【service mysqld start】启动mysql

ee9d79fae04ae875e2d5dfd0aec5e811.png

【service mysqld status】查看mysql状态

d3af10184d3e0c7747d5c01f5f542972.png

注:active表明mysql服务正常。

至此mysql已经初步启动起来了。

其它

1、查看mysql临时登录密码并root登录

1、查看临时密码

【grep password /var/log/mysqld.log】日志中记录了mysql临时密码,红双框起来处。

35bda1dac301f0189637f1cc70aa2dce.png

4ee8afd16f4fcd9269e39e9d09d8b691.png

查看日志文件,我们可以发现 using password:YES,说明密码是正确的,所有上图中登录失败,不是密码错误的原因。

2、登录mysql

【mysql -u root -p】输入命令后,输入上文查询出来的临时密码,登录mysql,如下图:

0a605e7f217d0d56af940f457b1cfe8d.png

3、数据库使用失败

【use mysql;】基于root用户使用数据库时,报错了,系统提示需要重置密码。即:我们登陆以后,如果不重置密码,拒绝root登录。

f09fb254ed22c58036c9894505dc4ff3.png

2、重置密码

1、root登录数据库(见上文)

2、查看密码规则

一句话:我们的密码只要超过8位数,有数字、有特殊字符、有大小写字母就可以了。当然也可以修改mysql校验规则,本文不做描述。

具体如下:

【 SHOW VARIABLES LIKE 'validate_password%';】

72b7a7a76935dff1a7d0aba166157d25.png

关于 mysql 密码策略相关参数说明如下:

序号

规则

备注

1

validate_password_length

固定密码的总长度

2

validate_password_dictionary_file

指定密码验证的文件路径

3

validate_password_mixed_case_count

整个密码中至少要包含大/小写字母的总个数

4

validate_password_number_count

整个密码中至少要包含阿拉伯数字的个数

5

validate_password_policy

指定密码的强度验证等级,默认为 MEDIUM

关于 validate_password_policy 的取值:

0/LOW:只验证长度;

1/MEDIUM:验证长度、数字、大小写、特殊字符;

2/STRONG:验证长度、数字、大小写、特殊字符、字典文件;

6

validate_password_special_char_count

整个密码中至少要包含特殊字符的个数

3、重置密码

【set password = password(“yourpassword”)】

在密码符合条件的情况下,修改成功,如下图所示。

e4cef7db206050f241e60fe3a7e70b47.png

大家可以看到,前面三次密码都修改失败了,因为密码没有符合相应的规则。

3、远程连接-设置远程连接权限

数据启动,并且密码修改后,我们尝试着远程连接,结果连接失败了。

441214b0ef6906ae2735c94733f3942a.png

下面我们来进行mysql远程连接设置:

格式:grant 权限 on 数据库教程名.表名 to 用户@登录主机 identified by "用户密码";

【GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'youpassword' WITH GRANT OPTION;】

b0ec9fb8db118835c28968f381783e6b.png

注:赋予所有数据库(*.*)所有的权限(ALL PRIVILEGES)给root用户。

【GRANT ALL PRIVILEGES ON xxx.* TO 'xxxx'@'%' IDENTIFIED BY 'mbz202002wW#' WITH GRANT OPTION; 】

6bebbc2bd9fb488bff2ba7ca4554a661.png

注:赋予某个数据库(xxx.*)所有的权限(ALL PRIVILEGES)给xxxx用户。

4、远程连接-阿里云端口开放

ebfe3f3a68515b8936ba7501117c4407.png

如果发现还是 连接不上,并且使用的阿里云ECS,需要在阿里云控制台中开放mysql数据库端口3306。操作步骤如下:

1、登录阿里云,打开云服务器ECS界面,点击云服务器ECS,进入云服务器管理控制界面,点击服务实例,进入实例管理界面。

50d261a9e591eff1a87054671aa84f73.png

2、点击本实例安全组,点击配置规则,进入规则配置界面。

666ab9ddaee64c0fd14774a8fb9da971.png

3、点击添加安全组规则、新增安全规则,这里新增的是3306端口,规则是0.0.0.0/0表示支持所有IP访问3306端口。

c5eb8c057de9b493e194196c3dc20902.png

4、配置完成后,重启云服务

8b61ceaf63021ba8b266dac7bf4f3e08.png

5、重新远程登录

c3621f3b9a2efd90f5b7031b1180115b.png

输入用户名密码、远程登录成功。

17755c4d38ca2d33a98e1d66d44d79f3.png

创建数据库用户

考虑的root权限比较大,实际应用中我们倾向于新建一个业务数据库用户。

1、登录服务器并以root登录数据库

0a605e7f217d0d56af940f457b1cfe8d.png
  1. 创建数据库用户

语法格式:

CREATE USER 'username'@'host' IDENTIFIED BY 'password';

序号

规则

备注

1

username

用户名

2

host

指定该用户在哪个主机上可以登陆,如果是本地用户可用localhost,如果想让该用户可以从任意远程主机登陆,可以使用通配符%

3

password

该用户的登陆密码,密码可以为空,如果为空则该用户可以不需要密码登陆服务器

例子:

【CREATE USER 'mbz202002'@'host' IDENTIFIED BY 'mbz202002wW#';】

f60b1215a1531602f856d76060e9957a.png

【CREATE DATABASE xxx;】创建数据库

【CREATE DATABASE `xxx` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci】创建数据xxx并制定数据库字符集utf-8,建议创建数据库的时候就指定字符集

5373241ec8a4ae0de1c9d0bc67bca4e1.png

删除数据库用户

MySQL 数据库中可以使用 DROP USER 语句来删除一个或多个用户账号以及相关的权限。

语法格式:

DROP USER <用户名1> [ , <用户名2> ]…

使用 DROP USER 语句应该注意以下几点:

例子:

【drop user 'xxx'@'host';】

cb54ff8d4a39aa3ddf5d106b60ac92b1.png

注意:用户名和数据库和登录主机需要用引号括起来

新建数据库

考虑的root权限比较大,实际应用中我们倾向于新建一个业务数据库用户。

1、登录服务器并以root登录数据库

0a605e7f217d0d56af940f457b1cfe8d.png

2、创建数据库

【CREATE DATABASE xxx;】创建数据库

【CREATE DATABASE `xxx` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci】创建数据xxx并制定数据库字符集utf-8,建议创建数据库的时候就指定字符集

5373241ec8a4ae0de1c9d0bc67bca4e1.png

赋予用户权限

语法格式:

GRANT privileges ON databasename.tablename TO 'username'@'host'

序号

规则

备注

1

privileges

用户的操作权限,如SELECT,INSERT,UPDATE等,如果要授予所的权限则使用ALL

2

databasename

数据库名

3

tablename

表名,如果要授予该用户对所有数据库和表的相应操作权限则可用*表示,如*.*
例子:

例子:

【GRANT all privileges ON xxx.* TO xxxx@'host';】

注释:给xxxx用户赋予xxx数据库的所有权限。

撤销用户权限

语法格式:

revoke privileges ON databasename.tablename from 'username'@'host'

revoke 跟 grant 的语法差不多,只需要把关键字 “to” 换成 “from” 即可:

序号

规则

备注

1

privileges

用户的操作权限,如SELECT,INSERT,UPDATE等,如果要授予所的权限则使用ALL

2

databasename

数据库名

3

tablename

表名,如果要授予该用户对所有数据库和表的相应操作权限则可用*表示,如*.*
例子:

例子:

【revoke all PRIVILEGES on *.* from 'xxxx'@'%';】

e9c727b26c9e26413f3186464eb81cc4.png

注释:给xxxx用户撤销所有权限。

可以看到没有数据库权限了

fed8179a38768dc9c914927afb3acd64.png

中文乱码设置

通过navicat导入中文时,发现中文乱码。

5fb6ed08b851a8ac3ff71014af160a5b.png

下面我们进行数据库字符集设置。

1、查看当前数据库字符集

通过sql命令mysql -u root -p输入密码后进入数据库,再通过show variables like 'char%';查看字符编码配置。

【show variables like 'char%';】

cb20184117cf592db64192164cb2d4d4.png

可以看到character_set_database和character_set_server字符集为latin1,我们需要修改为utf-8。

2、修改my.cnf文件

在 /etc/my.cnf下添加字符集设置,如果路径不对,请自行查找,在my.cnf文件中添加以下设置并保存。

# charset

[client]

default-character-set=utf8

[mysqld]

default-storage-engine=INNODB

character-set-server=utf8

collation-server=utf8_general_ci

8b94cb4904db1aa77452d91d60b39e07.png

3、重启服务

【service mysqld restart】

03afabd0253e15125b62b6781ed04364.png

4、再次查看字符集

1a09c915f19b37c731fff33bcbb7c32b.png

可以看到,除了character_set_filesystem是binary外,其他都是utf8了,这样在web端也设置成utf8编码就可以正常输入数据库了。

5、修改已有数据库的字符集

如果之前新建的数据库字符集不对,可以通过以下命令修改。

语法格式:

alter database 数据库名 character set utf8;

【alter database mbz202002 character set utf8;】

45d6a30d99b16f1e630c3b538321fa4a.png

6、重启数据库服务器

具体请看上文。

7、再次导入数据

9b91e505ab89ed32f620502c7e593cb4.png

可以看到数据导入正常。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值