MySQL 简介

  • 是一个关系型数据库管理系统,由瑞典MySQL AB(创始人Michael Widenius)公司开发,2008被Sun收购(10亿美金),2009年Sun被Oracle收购。
  • 是一种关联数据库管理系统,将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。
  • 是开源的,所以你不需要支付额外的费用。
  • 是可以定制的,采用了GPL(GNU General Public License)协议,你可以修改源码来开发自己的MySQL系统。
  • 支持大型的数据库。可以处理拥有上千万条记录的大型数据库。
  • 支持大型数据库,支持5000万条记录的数据仓库,32位系统表文件最大可支持4GB,64位系统支持最大的表文件为8TB。
  • 使用标准的SQL数据语言形式。
  • 可以允许运行在多个系统上,并且支持多种语言。这些编程语言包括C、C++、Python、Java、Perl、PHP、Eiffel、Ruby和Tcl等。

离线安装

官网下载

  • 打开官网,点击DOWNLOADS https://www.mysql.com
  • 点击社区版服务器 MySQL Community Server
  • 选择适合自己的版本
  • 开始下载

如果Windows 系统下安装MySQL

  • 详细教程见 : 安装详情

解压安装程序

  • 将下载好的mysql文件上传到 Linux 服务器解压

tar -xvf mysql-5.7.31-1.el7.x86_64.rpm-bundle.tar

  • 如图

安装前卸载

  • 查看安装的 MySQL

rpm -qa | grep -i mysql

  • 查看安装的 MariaDB

rpm -qa | grep -i mariadb

  • 使用 rpm -e --nodeps 命令卸载 [ MySQL / MariaDB ] 通用

删除残留文件 [ 必须删除,否则启动不了MySQL ]

  • 删除 rm -rf /var/lib/mysql 下所有文件
  • 删除日志文件 /var/log/mysqld.log

执行查询命令检查依赖

rpm -qa|grep libaio
rpm -qa|grep net-tools

  • 如图 : [ 虚拟机有无需安装 ] - [ 阿里云服务器没有 ]

执行安装命令

  • 在mysql的安装文件目录下执行:(必须按照顺序执行)
  • -i, --install 安装软件包
  • -v, --verbose 提供更多的详细信息输出
  • -h, --hash 软件包安装的时候列出哈希标记 (和 -v 一起使用效果更好),展示进度条
  1. 开始安装

rpm -ivh mysql-community-common-5.7.31-1.el7.x86_64.rpm
rpm -ivh mysql-community-libs-5.7.31-1.el7.x86_64.rpm
rpm -ivh mysql-community-client-5.7.31-1.el7.x86_64.rpm

  • 如图 - 可能会出现以下问题

解决方案

  • 分析原因:这是由于yum安装了旧版本的GPG keys造成的 解决办法:后面加上 --force --nodeps 如: rpm -ivh MySQL-server-5.5.46-1.linux2.6.x86_64.rpm --force --nodeps 从 RPM 版本 4.1 开始,在安装或升级软件包时会检查软件包的签名。
  • CentOS安装rpm安装MySQL时爆出警告:
  • 根本原因:这是由于yum安装了旧版本的GPG keys造成的
  • 解决办法:后面加上 --force --nodeps 即可

rpm -ivh mysql-community-server-5.7.31-1.el7.x86_64.rpm --force --nodeps

查看是否安装成功

rpm -qa|grep -i mysql

  • 如图

查看安装的MySQL版本

mysqladmin --version

  • 如图

安装后的目录结构

参数 路径 解释 备注
–basedir /usr/bin 相关命令目录 mysqladmin mysqldump等命令
–datadir /var/lib/mysql/ mysql数据库文件的存放路径
–plugin-dir /usr/lib64/mysql/plugin mysql插件存放路径
–log-error /var/log/mysqld.log mysql错误日志路径
–pid-file /var/run/mysqld/mysqld.pid 进程pid文件
–socket /var/lib/mysql/mysql.sock 本地连接时用的unix套接字文件
/usr/share/mysql 配置文件目录 mysql脚本及配置文件
/etc/my.cnf mysql配置文件 cat /etc/my.cnf

服务启停相关脚本 : /etc/systemd/system/multi-user.target.wants/mysqld.service

启动命令

#启动
systemctl start mysqld
#关闭
systemctl stop mysqld
#重启
systemctl restart mysqld
#查看状态
systemctl status mysqld

设置开机启动

#查看服务是否自动启动(是:enabled | 否:disabled
systemctl list-unit-files|grep mysqld.service
#设置开机启动:如不是enabled可以运行如下命令设置自启动
systemctl enable mysqld
#重新加载服务配置
systemctl daemon-reload
#如果希望不进行自启动,运行如下命令设置
systemctl disable mysqld

查看进程

ps -ef | grep -i mysql

配置密码

设置root密码

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

grep 'temporary password' /var/log/mysqld.log

  1. 连接 MySQL
  2. 修改密码

ALTER USER 'root'@'localhost' IDENTIFIED BY '123456My!';
–或者
SET password FOR 'root'@'localhost'= password('123456My!');

  • 如图

    注意: mysql5.7 默认安装了密码安全检查插件(validate_password),默认密码检查策略要求密码必须包含:大小写字母、数字和特殊符号,并且长度不能少于8位。否则会提示ERROR 1819 (HY000): Your password does not satisfy the current policy requirements错误,如下图所示:

密码策略

  1. 如果不需要密码策略,在/etc/my.cnf 文件中的最后添加如下配置禁用即可:

validate_password = off

  • 如图
  1. 重新启动mysql服务使配置生效:

systemctl restart mysqld

修改密码

SET password = PASSWORD('654321');

忘记root密码

  1. /etc/my.cnf 文件 [mysqld] 的段中加上一句:skip-grant-tables 保存并且退出vim

mysql -u root

mysql> UPDATE mysql.user SET authentication_string = password('123456') WHERE User='root' AND Host = 'localhost';
mysql> FLUSH PRIVILEGES

字符集

  1. 查看字符集

SHOW VARIABLES LIKE 'character%';

  • 默认latin1字符编码,不支持中文, 如图 :
  1. 设置字符集
  2. mysql配置文件:vim /etc/my.cnf
[client]
default-character-set=utf8
[mysqld]
character-set-server=utf8

  1. 重启服务

systemctl restart mysqld

  1. 查看

SHOW VARIABLES LIKE 'character%';

修改已有数据库符集

  • 已生成的库表字符集如何变更?
--修改已创建数据库的字符集
mysql> ALTER DATABASE 数据库名 CHARACTER SET 'utf8';
--修改已创建数据表的字符集
mysql> ALTER TABLE 表名 CONVERT TO  CHARACTER SET 'utf8';

客户端远程连接

  1. 如果是远程服务器需要配置安全组, 开放3306端口
  2. 本地 Navicat 连接远程的MySQL, 遇到问题, 别慌继续往下看
  3. 设置远程访问权限
  4. 默认root账户只能本机访问,需要设置其远程访问权限,或者,创建普通用户进行授权访问。
  5. 下面为放行root的远程连接权限的方式:

GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '密码' WITH GRANT OPTION;

  • 如图
  1. 重启服务器

systemctl restart mysqld

防火墙设置

远程访问前必须关闭防火墙或开放3306端口

#查看防火墙状态
firewall-cmd --state
#关闭防火墙
systemctl stop firewalld.service
#禁用开机启动
systemctl disable firewalld.service

启用防火墙并开放3306端口

#查看防火墙状态
firewall-cmd --state
#开启防火墙
systemctl start firewalld.service
#设置开机自启
systemctl enable firewalld.service#设置开放的端口号
firewall-cmd --zone=public --add-port=3306/tcp --permanent
#重启防火墙
firewall-cmd --reload
#查看开放的端口
firewall-cmd --list-ports
  • 测试连接成功

用户管理

MySQL库中的user表

  • host : 表示连接类型

    • % :表示允许所有远程通过 TCP方式的连接
    • IP 地址: 如 (192.168.1.2,127.0.0.1),允许指定ip地址进行的TCP方式的连接
    • 机器名:允许指定网络中的机器名进行的TCP方式的连接
      * ::1:IPv6的本地ip地址,等同于IPv4的 127.0.0.1,允许TCP方式的连接
    • localhost:本地方式通过命令行方式的连接 ,比如mysql -u xxx -p xxx 方式的连接。
  • user : 表示用户名
    • 同一用户通过不同方式链接的权限是不一样的。
  • password : 密码
    • 所有密码串通过 password(明文字符串) 生成的密文字符串。加密算法为MYSQLSHA1,不可逆 。
    • mysql 5.7 的密码保存到 authentication_string 字段中,不再使用password 字段。
  • select_priv , insert_priv等
    • 为该用户所拥有的权限。

创建用户

  1. 表示创建名称为 Lance 的用户,密码设为 123456;
CREATE USER Lance IDENTIFIED BY '123456';

  • 可以看到新添加的用户也是有远程连接数据库的权限的

修改密码

  1. 修改某个用户的密码:
--mysql5.5
mysql> UPDATE mysql.user SET password = PASSWORD('1234') WHERE user = 'Lance';
--mysql5.7
mysql> UPDATE mysql.user SET authentication_string = PASSWORD('1234') WHERE user = 'Lance';
--必须用该命令才能生效。否则,需重启服务。
mysql> FLUSH PRIVILEGES;

修改用户

  1. 修改用户名:
 UPDATE mysql.user SET user = '蓝山' WHERE user = 'Lance';

删除用户

  1. 不要通过delete from user u where user=‘annie’ 进行删除,系统会有残留信息保留。
DROP user '蓝山';
  1. 删除用户时需要执行 FLUSH PRIVILEGES; 让删除用户的操作及时生效

权限管理

普通的权限在user数据库中存储,特殊的权限在db数据库中存储

授权

  1. 语法:
GRANT 权限1, 权限2, …权限n ON 数据库名称.表名称 TO '用户名'@'用户地址' IDENTIFIED BY '连接口令';
  1. 给用户授 怎删改查 的权限
 GRANT SELECT, INSERT, DELETE, UPDATE ON db_test.* TO 'Lance'@'%';


3. 如果发现没有该用户,则会直接新建一个用户, 并且授权, [*表示所有权限 ]

 GRANT ALL PRIVILEGES ON *.* TO 'joe'@'%' IDENTIFIED BY '123';

查看权限

  1. 查看当前用户权限:
 SHOW GRANTS;


2. 查看某用户的全局权限:

SELECT * FROM mysql.user WHERE user = 'Lance' \G;

收回权限

  1. 语法:
mysql> REVOKE  权限1, 权限2, …权限n ON 数据库名称.表名称 FROM '用户名'@'用户地址';
  1. 收回 Lance 的 mysql 库下的所有表的插删改查权限
REVOKE SELECT, INSERT, UPDATE, DELETE ON *.* FROM 'Lance'@'%';
FLUSH PRIVILEGES;

Lance用户需要重新连接才会生效


3. 收回全库全表的所有权限

REVOKE ALL PRIVILEGES ON *.* FROM 'Lance'@'%';

FLUSH PRIVILEGES;

Lance用户需要重新连接才会生效

感谢阅读, 以上就是对 MySQL在Centos下安装使用的过程了, 如有什么更好的建议或方法 ,欢迎留言

Centos7 安装配置MySQL5.7相关推荐

  1. Centos7 安装配置 tomcat 并设置自动启动

    Centos7 安装配置 tomcat 并设置自动启动 下载安装包 这里选择适合Linux的安装包,下载到本地后上传到centos服务器,或者直接通过wget命令下载 1 2 3 4 # cd /us ...

  2. 阿里云 centos mysql 5.6_关于centOS安装配置mysql5.6那点事

    关于centOS安装配置mysql5.6那点事 第一步 下载安装 一.主要因为现在mysql官网yum直接推送mysql8,mysql5.1,然而mysql8不稳定,mysql5.1版本又太低,要想用 ...

  3. vnc安装linux教程,Centos7安装配置vncserver详细教程

    CentOS7安装配置vncserver教程 一.安装VNC 首先要保证目标服务器安装有图形化环境,Linux系统下常见的桌面环境有GNOME和KDE,这里我们首先通过Group的方式安装GNOME桌 ...

  4. centos7安装配置vsftp搭建FTP

    参考文章: CentOS7下安装FTP服务 详解CentOS7安装配置vsftp搭建FTP centos7之vsftp安装和使用 1.安装vsftp # 查看是否已安装 方法一 [root@local ...

  5. Centos7 安装,配置静态IP

    Centos7 安装,配置静态IP 本文采用桥接方式 镜像地址 下载好镜像后使用vmware虚拟机进行安装即可(注意设置root密码). 安装完成后使用root登录,输入设置好的密码 设置静态ip v ...

  6. win7 64位下如何安装配置mysql-5.7.17-winx64

    本人综合了两篇文章得以安装成功: win7 64位下如何安装配置mysql-5.7.4-m14-winx64 the MySQL service on local computer started a ...

  7. CentOS7 安装配置FTP服务器详解

    CentOS7 安装配置FTP服务器详解 1.FTP简介 ftp(File Transfer Protocol文件传输协议)是基于TCP/IP 协议的应用层协议,用于文件的传输,包括ftp服务器(或服 ...

  8. CentOS7 安装配置SFTP服务器详解

    CentOS7 安装配置SFTP服务器详解 1.SFTP简介 SSH文件传输协议(英语:SSH File Transfer Protocol,也称Secret File Transfer Protoc ...

  9. mysql 5.7.4 m14_win7 64位下如何安装配置mysql-5.7.4-m14-winx64(安装记录)_MySQL

    win7 win7 64位下如何安装配置mysql-5.7.4-m14-winx64 1. mysql-5.7.4-m14-winx64.zip下载 2.解压到D:/mysql.(路径自己指定) 3. ...

最新文章

  1. Linux链接库三(C跟C++之间动态库的相互调用)
  2. linux缓存代码,Linux使用的缓存
  3. (68)信号发生器DDS协议(第14天)
  4. vue饼图组件_vue写一个图表组件(1)----饼图
  5. 【Samshing专栏】动态等待符的实践指南
  6. fastReport 小总结
  7. SpringCloud 应用在 Kubernetes 上的最佳实践(一):开发篇 | 凌云时刻
  8. 《遥感原理与应用》孙家抦版知识点总结(含简答题)——第四章
  9. 虚拟机安装OpenGauss企业版
  10. 两平面间8参数变换参数求解简单原理解析(已更新间接平差算法)
  11. 转帖]实现永久保存注册表数据(转自阿冰blog)
  12. Chrome 插件下载网站+6个实用插件推荐
  13. 基于Openfire Smack开发即时通讯应用、获取离线消息,发送消息,联系人列表,添加好友(三)
  14. 布莱叶盲文-谷歌生态
  15. 怎么修复索尼摄像机死机断电损坏的MXF视频文件
  16. Maven学习——maven基础
  17. android游戏开发实例-可局域网对战的飞行棋(一)
  18. 三星G9006W 6.0 root
  19. 12864液晶深入学习笔记_1——基于msp430g2553
  20. 达尔优键盘Mac Command-c和Command-v复制粘贴快捷键失效问题解决方案

热门文章

  1. oracle数据库超级解锁,oracle数据库锁,解锁,批量解锁
  2. 数据字典(一级字典,二级字典)
  3. 基于JAVA语言开发的一套电子病历源码 完整可用
  4. 计算机自我介绍500字范文(合集)
  5. java日历代码_JAVA日历代码,怎么做?
  6. 华为荣耀10体验android9,荣耀10 P 版本(EMUI 9.0+Android 9.0) 体验版 9.0.0.120发布说明...
  7. MathType丢失Mplugin.dll文件解决方法及Mplugin.dll下载
  8. 从tomcat迁移项目到geronimo
  9. 怎么写出高阅读文章,爆款文章写作技巧
  10. ssh免密钥登录(两种方法) 免秘钥