mysql安装

CentOS7安装mysql8.0步骤

1.1 安装前清理工作(卸载mysql);
1.1.1 清理原有的mysql数据库;
使用以下命令查找出安装的mysql软件包和依赖包:

rpm -pa | grep mysql

显示结果如下:

mysql80-community-release-el7-1.noarch
mysql-community-server-8.0.11-1.el7.x86_64
mysql-community-common-8.0.11-1.el7.x86_64
mysql-community-libs-8.0.11-1.el7.x86_64
mysql-community-client-8.0.11-1.el7.x86_64
使用以下命令依次删除上面的程序

yum remove mysql-xxx-xxx-

删除mysql的配置文件,卸载不会自动删除配置文件,首先使用如下命令查找出所用的配置文件;

find / -name mysql

可能的显示结果如下:

/etc/logrotate.d/mysql
/etc/selinux/targeted/active/modules/100/mysql
/etc/selinux/targeted/tmp/modules/100/mysql
/var/lib/mysql
/var/lib/mysql/mysql
/usr/bin/mysql
/usr/lib64/mysql
/usr/local/mysql

根据需求使用以下命令 依次 对配置文件进行删除

rm -rf /var/lib/mysql

1.1.2 删除MariaDB的文件,

由于MySQL在CentOS7中收费了,所以已经不支持MySQL了,取而代之在CentOS7内部集成了mariadb,而安装MySQL的话会和MariaDB的文件冲突,所以需要先卸载掉MariaDB.

使用rpm 命令查找出要删除的mariadb文件;

rpm -pa | grep mariadb
可能的显示结果如下:
mariadb-libs-5.5.56-2.el7.x86_64  

rpm -e mariadb-libs-5.5.56-2.el7.x86_64 #删除上面的程序

可能出现错误提示如下:

依赖检测失败:

libmysqlclient.so.18()(64bit) 被 (已安裝) postfix-2:2.10.1-6.el7.x86_64 需要

libmysqlclient.so.18(libmysqlclient_18)(64bit) 被 (已安裝) postfix-2:2.10.1-6.el7.x86_64 需要

libmysqlclient.so.18(libmysqlclient_18)(64bit) 被 (已安裝) postfix-2:2.10.1-6.el7.x86_64 需要

使用强制删除:

rpm -e --nodeps mariadb-libs-5.5.56-2.el7.x86_64

至此就将原来有的mysql 和mariadb数据库删除了;

1.2 安装mysql

1.2.2 下载软件包rpm文件

文件下载到Centos/usr/local/mysql文件夹下;

cd /usr/local
mkdir mysql
cd mysql
wget  https://repo.mysql.com//mysql80-community-release-el7-1.noarch.rpm

1.2.3 安装 yum repo文件并更新 yum 缓存;

rpm -ivh mysql80-community-release-el7-1.noarch.rpm

执行结果:

会在/etc/yum.repos.d/目录下生成两个repo文件mysql-community.repo mysql-community-source.repo

更新 yum 命令

yum clean all
yum makecache

1.2.4 使用 yum安装mysql

当我们在使用yum安装mysql时,yum默认会从yum仓库中安装mysql最新的GA版本;如何选择自己的版本;

第一步: 查看mysql yum仓库中mysql版本,使用如下命令

yum repolist all | grep mysql

可以看到 MySQL 5.5 5.6 5.7为禁用状态 而MySQL 8.0为启用状态;

第二步 使用 yum-config-manager 命令修改相应的版本为启用状态最新版本为禁用状态,根据需要安装的版本修改

yum-config-manager --disable mysql80-community #关闭8.0版本
yum-config-manager --enable mysql57-community #开启5.7版本

或者可以编辑 mysql repo文件,

cat /etc/yum.repos.d/mysql-community.repo 

将相应版本下的enabled改成 1 即可;

1.2.5 安装mysql 命令如下:

yum install mysql-community-server

1.2.6 开启mysql 服务

systemctl start mysqld.service

1.2.7 获取初始密码登录mysql

mysql在安装后会创建一个root@locahost账户,并且把初始的密码放到了/var/log/mysqld.log文件中;

cat /var/log/mysqld.log | grep password

使用初始密码登录mysql

mysql -u root -p  #会提示输入密码

修改初始密码:

ALTER USER 'root'@'localhost' IDENTIFIED BY 'Report@123';#注意位数和种类至少大+写+小写+符号+数字

忘记密码重置密码

[重置密码解决MySQL for Linux错误 ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)]

vim /etc/my.cnf #注:windows下修改的是my.ini

skip-grant-tables# 在[mysqld]后面任意一行添加skip-grant-tables用来跳过密码验证的过程;设置完密码记得删除
systemctl restart mysqld.service #重启mysql ,就可以免密码登陆了,然后进行修改密码

在安装Mysql8.0.3过程中重置密码时报了这个错误, 原因是没有设置密码时需要在/etc/my.cnf中添加这段时才能操作mysql

跳过密码验证

skip-grant-tables

但是添加完这句后操作mysql又报了这个错误, 这就成了一个死循环, 最后发现了解决办法,

这是因为权限设置了但还没有刷新导致的。

先执行

|

flush privileges;

|

免密登陆后,先将密码置空,在进行修改。否则会报错(浪费半天时间找原因)

update user set authentication_string='' where user='root';

再执行sql语句, 成功了

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'Report@123';

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

密码策略问题异常信息:
ERROR 1819 (HY000): Your password does not satisfy the current policy requirements

如下图:

解决办法:

1、查看 mysql 初始的密码策略,
输入语句 “ SHOW VARIABLES LIKE 'validate_password%'; ” 进行查看,

2、首先需要设置密码的验证强度等级,设置 validate_password_policy 的全局参数为 LOW 即可,
输入设值语句 “ set global validate_password_policy=LOW; ” 进行设值,(有时是set global validate_password.policy=LOW;看自己的列表显示是什么酒怎么设置)

3、当前密码长度为 8 ,如果不介意的话就不用修改了,按照通用的来讲,设置为 6 位的密码,设置 validate_password_length 的全局参数为 6 即可,
输入设值语句 “ set global validate_password_length=6; ” 进行设值,(同上)
如下图:

image

4、现在可以为 mysql 设置简单密码了,只要满足六位的长度即可,
输入修改语句 “ ALTER USER 'root'@'localhost' IDENTIFIED BY '123456'; ” 可以看到修改成功,表示密码策略修改成功了!!!

如下图:

image

注:在默认密码的长度最小值为 4 ,由 大/小写字母各一个 + 阿拉伯数字一个 + 特殊字符一个,
只要设置密码的长度小于 3 ,都将自动设值为 4 ,如下图:

image

关于 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 整个密码中至少要包含特殊字符的个数;

1.2.8 在防火墙中开启3306端口

CentOS7默认使用的是firewall作为防火墙,我这里改为习惯常用的iptables防火墙

第一步:开启firewall3306端口防火墙

firewall-cmd --zone=public --list-ports 查看所有打开的端口
firewall-cmd --zone=public --add-port=80/tcp --permanent    开启一个端口,添加--permanent永久生效,没有此参数重启后失效
firewall-cmd --permanent --add-port=80/tcp  开放端口80
firewall-cmd --permanent --remove-port=80/tcp   移除端口80
firewall-cmd --reload   重启防火墙,修改后重启防火墙生效

第五步: 重启防火墙

systemctl enable iptables.service
systemctl start iptables.service

systemctl status firewalld.service
systemctl stop firewalld.service
systemctl disable firewalld.service

1.2.9 将mysql 服务加入开机启动项,并启动mysql进程

systemctl enable mysqld.service
systemctl start mysqld.service

systemctl stop firewalld.service
systemctl disable firewalld.service

常用mysql服务命令:

mysql -u username -p #登录mysql
quit #退出mysql 
systemctl start mysqld.service  #启动mysql
systemctl stop mysqld.service #结束
systemctl restart mysqld.service #重启
systemctl enable mysqld.service #开机自启
select version(); #查看mysql版本

2.1 开启mysql远程服务:

外网 Navicat 连接 Mysql

2.1.1 修改mysql数据库下的user表中host的值

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

mysql -u root -p
use mysql;
update user set host='%' where user='root';

2.1.2 使用授权的方式

赋予任何主机访问数据的权限(有时会报错,那就多执行

FLUSH PRIVILEGES;命令,再不行就自行百度查一下原因,基本都是相同操作再来一遍。

mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'%'WITH GRANT OPTION;
mysql>FLUSH PRIVILEGES;

如果想myuser用户使用mypassword密码从任何主机连接到mysql服务器的话。

GRANT ALL PRIVILEGES ON *.* TO 'myuser'@'%'IDENTIFIED BY 'mypassword' WITH GRANT OPTION;

如果你想允许用户myuser从ip为192.168.1.6的主机连接到mysql服务器,并使用mypassword作为密码

GRANT ALL PRIVILEGES ON *.* TO 'myuser'@'192.168.1.3'IDENTIFIED BY 'mypassword' WITH GRANT OPTION;

2.2 在使用 Navicat for Mysql连接mysql 8.0时会报如下错误:

Authentication plugin 'caching_sha2_password' cannot be loaded:

mysql8.0 引入了新特性 caching_sha2_password;这种密码加密方式客户端不支持;客户端支持的是mysql_native_password 这种加密方式;

我们可可以查看mysql 数据库中user表的 plugin字段;

可以使用命令将他修改成mysql_native_password加密模式:

update user set plugin='mysql_native_password' where user='root';

再用Navicat链接 就可以链接成功;


安装过程中涉及到的Linux命令学习;
3.1 rpm

3.2 putty 上传文件 pscp命令;

在window机上CD进入pttty安装目录:

    cd :\program files (x86)\Putty

将本地文件拷贝到Linux上:pscp 文件 用户名@LinuxIP:目录

    pscp hello.txt root@192.168.145.135:/tmp/userfile/

将本地文件夹 拷贝到Linux上:pscp  -r 目录 用户名@LinuxIP:目录

   pscp -r c:\file root@10.43.65.98:/root/testFolder  

将Linux上的文件\root\test.txt拷贝到本地C盘src文件夹,如下:

   pscp root@abc_pc:/root/test.txt  C:\src  

3.3 修改防火墙文件/etc/sysconfig/iptables

3.4 systemctl命令

授权外网登陆
1。 改表法。

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

Sql代码


  1. mysql -u root -pvmwaremysql>use mysql;  

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

  3. mysql>select host, user from user; 

  1. 授权法。

例如,你想myuser使用mypassword从任何主机连接到mysql服务器的话。

Sql代码

GRANT ALL PRIVILEGES ON *.* TO 'myuser'@'%' IDENTIFIED BY 'mypassword' WITH

GRANT OPTION;  

FLUSH   PRIVILEGES; 

如果你想允许用户myuser从ip为192.168.1.6的主机连接到mysql服务器的dk数据库,并使用mypassword作为密码

Sql代码

GRANT ALL PRIVILEGES ON dk.* TO 'myuser'@'192.168.1.3' IDENTIFIED BY 

'mypassword' WITH GRANT OPTION; 

FLUSH   PRIVILEGES; 

注意授权后必须FLUSH PRIVILEGES;否则无法立即生效。

3
另外一种方法.

在安装mysql的机器上运行:

1、d:\mysql\bin\>mysql -h localhost -u root 

//这样应该可以进入MySQL服务器

2、mysql>GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION 

//赋予任何主机访问数据的权限

3、mysql>FLUSH PRIVILEGES 

//修改生效

4、mysql>EXIT 

//退出MySQL服务器

这样就可以在其它任何的主机上以root身份登录啦!

其它:

mysql> grant all privileges on *.* to 'energy_pf'@'192.168.2.65' identified by 'energy_pf' with grant option;

Query OK, 0 rows affected (0.00 sec)

mysql> plush privileges; #立即生效

允许用户energy_pf从ip为192.168.2.65的主机连接到mysql服务器的任意数据库(.),并使用energy_pf作为密码

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,324评论 5 476
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,303评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,192评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,555评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,569评论 5 365
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,566评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,927评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,583评论 0 257
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,827评论 1 297
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,590评论 2 320
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,669评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,365评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,941评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,928评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,159评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,880评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,399评论 2 342

推荐阅读更多精彩内容