centos 7安装配置mysql

作为一个后端小白,也跟着网上的教程在腾讯云上面安装过几次mysql,也跳过不少坑,但是一直没有整理怎么去安装步骤,所以每次安装都是需要百度去找一下教程,但是这些教程很多比较乱,所以我打算自己写一篇关于我自己的安装经历的教程,我将哪些比较碎片的教程整理了一下。

一、 下载 mysql rpm 包

由于centos 7里面的yum 源里面没有mysql 的rpm 包,我必须到官网下载或者到其他镜像源去下载,这里我直接去官网下载。 在命令行中 输入以下命令:

//我这里选择的是5.7的版本,当然你也可以选择其他版本不影响
wget https://dev.mysql.com/get/mysql57-community-release-el7-9.noarch.rpm

有的linux 没有安装wget 的命令,可以通过命令安装 wget yum install wget
当然也可以到下载wget的rpm包:http://mirrors.163.com/centos/7/os/x86_64/Packages/ 在这个网站搜索wget-1.14-15.el7_4.1.x86_64.rpm即可)。然后运行: rpm -ivh wget-1.14-15.el7_4.1.x86_64.rpm **

在这里插入图片描述

二、使用yum命令即可完成安装

注意:必须进入到 /etc/yum.repos.d/目录后再执行以下脚本

1、安装命令:
rpm -ivh mysql57-community-release-el7-9.noarch.rpm
yum install mysql-server
2、启动msyql:
service mysqld start

当然有的也是可以通过下面这个命令来启动。

systemctl start mysql.service

三、登录问题

一般登录都是都是一下几个步骤,就是获取密码,然后命令登录。但是我们在登录后也会遇到几个问题。下面我会记录下来。

1、获取安装时的临时密码(在第一次登录时就是用这个密码):
grep 'temporary password' /var/log/mysqld.log 

然后mysql -uroot -p 然后回车然后输入密码就进去了。

mysql -uroot -p
这里输入你的密码
2、倘若没有获取临时密码,则

删除原来安装过的mysql残留的数据: rm -rf /var/lib/mysql。再启动mysql,然后再启动MySQL 输入mysql -uroot,然后回车直接进去了。

3、登录不上的问题。

在这里插入图片描述
报错:ERROR 1045 (28000): Access denied for user ‘root’@‘localhost’ (using password: NO 或者YES)

出现access denied的原因有如下可能:
   1)mysql的服务器停止

   2)用户的端口号或者IP导致  

   3)mysql的配置文件错误----my.ini等文件,但是有的是my.conf

   4)root用户的密码错误
解决方法

若MySQL已经没有启动,重启MySQL服务器:systemctl start mysql.service

若用户的端口号与IP不一致,打开my.ini文件进行编辑。全部编辑替换为: port=X

my.ini文件误输入无效内容,不知道到何处。

root用户密码错误或者上面图片报的错误,到安装的MySQL的目录下,找my.conf文件我的文件在(/etc/my.cnf);
在[mysqld]后添加skip-grant-tables(使用 set password for设置密码无效,且此后登录无需键入密码)使其登录时跳过权限检查.

重启MySQL服务器。
在这里插入图片描述

登录mysql,键入mysql –uroot –p;直接回车(Enter)

在这里插入图片描述
然后输入flush privileges;
否者或报错如下图
在这里插入图片描述
键入set password for ‘root’@‘localhost’=password(‘123456’);

在my.ini文件添加从此后无需键入密码

再把my.ini的skip-grant-tables删除,然后重启MySQL服务器
在这里插入图片描述
设置密码成功。。。

skip-name-resolv #禁止MySQL对外部连接进行DNS解析,使用这一选项可以消除MySQL进行DNS解析的时候。但是需要注意的是,如果开启该选项,则所有远程主机连接授权都要使用IP地址方式了,否则MySQL将无法正常处理连接请求

四、修改账户密码

修改密码是mysql里面DDL 的语法。你要去查看原始mysql 库的里面的user表。里面记录着用户信息。

1. 首先查看数据库
mysql > show databases;

在这里插入图片描述

2. 查看表
mysql> use mysql;
mysql> show tables;

user表

3. 查看用详情
mysql> select host, user, authentication_string from user;//查看用详情

在这里插入图片描述

在这里详细介绍一下我在这里面跳过的坑。
坑1:host 表示链接数据库的主机名,localhost 表示只能当前机器能连接数据库,后期如果你的应用和数据库不是部署在一台机器上面或者pc想要用Navicat连接mysql的话,必须改掉当前的host,可以直接把host 的地址改为%,这个表示任何机器都可以连接该数据,连接权限全部放开。这样不安全,不推荐,还有把host 改为制定ip。
坑2:有的时候改密码改不了,两种情况但是都是差不多,一种就是就是你的数据库密码安全等级很高,而你的密码设置的太过于简单,所以需要设置密码安全等级。还有就是设置了最小的密码长度,你设置的密码长度太短了。可以通过下面详细介绍和方法去解决。

SHOW VARIABLES LIKE 'validate_password%';

validate_password_number_count 参数是密码中至少含有的数字个数,当密码策略是MEDIUM或以上时生效。

validate_password_special_char_count 参数是密码中非英文数字等特殊字符的个数,当密码策略是MEDIUM或以上时生效。

validate_password_mixed_case_count 参数是密码中英文字符大小写的个数,当密码策略是MEDIUM或以上时生效。

validate_password_length 参数是密码的长度,这个参数由下面的公式生成

validate_password_number_count+ validate_password_special_char_count+ (2 * validate_password_mixed_case_count)

validate_password_dictionary_file 参数是指定密码验证的字典文件路径。

validate_password_policy 这个参数可以设为0、1、2,分别代表从低到高的密码强度,此参数的默认值为1,如果想将密码强度改若,则更改此参数为0。

更改密码策略为LOW
set global validate_password_policy=0;

更改密码长度
set global validate_password_length=0;

密码最小长度为4
SHOW VARIABLES LIKE 'validate_password%';
4. 修改密码

当然修改密码有很多种,我使用最常用的三种方式在这里我解释上面的修改host的方式
方式一:登录mysql 操作,用SET PASSWORD命令

mysql> SET PASSWORD FOR 'root'@'localhost' = PASSWORD('newpwd');

方式二:登录mysql 用update 命令来操作user 表,但是这里要求的权限很高。

mysql> use mysql;  
mysql> update user set password=password('123') where user='root' and host='localhost';  
mysql> flush privileges;  //刷新权限

方法三:用mysqladmin

 mysqladmin -u用户名 -p旧密码 password 新密码  

五、添加用户并且授权

1. 添加用户
CREATE USER 'username'@'localhost' IDENTIFIED BY 'password';

username: 你将创建用户的名字

localhost : 本地用户,如果想让该用户可以从任意远程主机登陆,可以使用%,也可以指定ip来登录连接

identified by : 密码为。。。。。

password : 密码

2.授权用户
GRANT privileges ON databasename.tablename TO 'username'@'host';

privileges – 用户的操作权限,如SELECT , INSERT , UPDATE 等如果要授予所有的权限则使用ALL说明:

databasename – 数据库名

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

3.收回授权
REVOKE all ON databasename.tablename FROM 'username'@'localhost';

privileges – 要收回的用户的操作权限,如SELECT , INSERT , UPDATE 等.如果要授予所有 的权限则使用ALL说明:

databasename – 数据库名

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

4.删除用户
DROP USER 'username'@'localhost';

以上便是我整理的安装mysql的步骤,当让不同的系统环境可能安装的步骤也不是一样的,但是大差不差,后面遇到心得话会更新。当然还有一点时当远程连接mysql时不仅要开放host 的ip 权限,还要打开系统防火墙的端口(一般3306),最后还需要到配置文件里(etc/mysql/mysql.cnf.d/mysqld.cnf)设置地址将默认的bind-address = 127.0.0.1(可能不写)改为 bind-address = 0.0.0.0。如果是阿里云或者腾讯云上面部署的mysql ,可能还需要设置安全组,好了就这么多了,我要继续搬砖了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值