数据库设置_CentOS7 - 设置MySQL数据库
设置MySQL数据库
本文介绍如何在CentOS上执行流行的MySQL数据库服务器的基本安装。 MySQL是当今使用最广泛的数据库系统,它可以在许多不同的行业中找到,为动态网站和大型数据仓库等各种产品提供数据存储。
准备
此配方要求CentOS系统具有有效的网络连接和管理权限,使用root帐户或sudo。
怎么做
请按照以下步骤安装MySQL并创建新数据库:
- 下载Oracle维护的MySQL存储库的存储库配置包:
curl -LO dev.mysql.com/get/mysql57-community-release-el7- 7.noarch.rpm
- 安装下载的包:
yum install mysql57-community-release-el7-7.noarch.rpm
- 现在已经注册了MySQL存储库,安装mysql-community-serverpackage:
yum install mysql-community-server
- 启动MySQL服务器并使其在系统重新启动时自动启动:
systemctl start mysqld.servicesystemctl enable mysqld.service
- 在系统的防火墙中打开端口3306以允许外部连接到MySQL:
firewall-cmd --zone=public --permanent --add-service=mysqlfirewall-cmd --reload
- 从服务器的日志文件中检索MySQL的root用户的临时密码:
grep "temporary password" /var/log/mysqld.log
- 使用mysqladmin为root设置新密码。 当程序提示输入当前密码时,请输入日志中的临时密码:
mysqladmin -u root -p password
- 使用mysql使用root帐户连接到MySQL服务器:
mysql -u root -p
- 要创建新数据库,请执行CREATE DATABASE语句:
CREATE DATABASE packt;
- 执行CREATE USER语句以创建用于处理数据库的MySQL用户帐户:
CREATE USER "tboronczyk"@"localhost" IDENTIFIED BY "P@$$W0rd";
- 执行GRANT语句以为新数据库的帐户分配适当的权限:
GRANT CREATE, DROP, ALTER, LOCK TABLES, INDEX, INSERT, UPDATE, SELECT, DELETE ON packt.* TO "tboronczyk"@"localhost";
- 执行FLUSH PRIVILEGES以指示MySQL重建其权限缓存:
FLUSH PRIVILEGES;
- 退出MySQL客户端并返回终端:
exit
工作原理
我们首先下载了在我们的系统上注册Oracle维护的MySQL存储库的软件包。 MySQL是从Oracle存储库安装的,因为CentOS存储库安装了MariaDB。 经过2008年至2010年的一系列收购,MySQL代码库和商标成为Oracle的财产。 对Oracle的管理和MySQL的未来的广泛关注促使MySQL的一个原始开发人员分叉项目并启动MariaDB。 2014年,Red Hat和CentOS存储库将MySQL替换为MariaDB的默认数据库(欢迎来到开源政治领域)。
注意
MariaDB的目标是在GNU GPL许可下保持一个免费的开源项目,并成为MySQL的“增强型,替代品”。目前,两者之间的差异对于临时用户来说可以忽略不计。但在分叉替换的世界中,主要是编程接口和通信协议保持兼容。核心功能最初可能保持不变,但随着时间的推移,新功能会独立添加,并且产品的功能集开始出现分歧。 MariaDB通过版本号的跳跃来承认这一点。 MariaDB 5.1提供与MySQL 5.1相同的功能,MariaDB 5.5 for MySQL 5.5也是如此。但是,MariaDB不打算实现MySQL 5.6的所有功能,并将其版本号更改为10.0。对于那些在家中保持分数的人来说,Oracle编写的存储库在撰写本文时主持了MySQL 5.7。 CentOS存储库目前提供MariaDB 5.5。
托管软件包的服务器假定人们使用Web浏览器下载文件并发出重定向以开始下载。由于我们使用curl,因此我们提供了-L参数来跟踪重定向以到达实际的包:
curl -LO dev.mysql.com/get/mysql57-community-release-el7-7.noarch.rpm
接下来,我们安装了下载的包。 一旦注册了存储库,我们就可以使用mysql-community-server软件包安装MySQL。 该软件包安装服务器二进制文件,与MySQL一起使用的客户端实用程序作为依赖项安装:
yum install mysql57-community-release-el7-7.noarch.rpmyum install mysql-community-server
MySQL维护自己的用户帐户,其管理用户名为root。 就像CentOS的root用户一样,您不应该将该帐户用于常规活动; 它应该保留用于管理任务,例如创建新用户,授予权限和刷新服务器的缓存。 其他权限较低的帐户应该用于日常活动。 为了保护root帐户,我们在第一次启动MySQL服务器时随机生成密码。 我们需要搜索MySQL记录密码的日志文件,以便我们可以设置我们自己选择的新密码:
grep "temporary password" /var/log/mysqld.log
知道了临时密码,我们用mysqladmin来改变它。 -u选项提供MySQL帐户的用户名,-p提示我们输入帐户的密码,password是实用程序用于更改密码的子命令。 我们在提示输入原始密码时输入了临时密码,然后我们被要求输入并确认新密码:
mysqladmin -u root -p password
注意
root的随机默认密码是从MySQL 5.6开始的新行为,它将密码写入/root/.mysql_secret,而5.7将其写入日志文件。 在旧版本中,因此由CentOS存储库安装的MariaDB自5.5以来,密码为空。 validate_password插件也在MySQL 5.7中激活。 它要求密码为八个字符或更多,至少有一个数字,一个大写和一个小写字符,以及一个特殊字符(即标点符号)。 选择root的新密码时请考虑这些要求。
设置root的永久密码需要临时密码
我们可以使用几个客户端连接到MySQL并与我们的数据库进行交互。 这个配方使用了mysql,因为它默认安装为依赖项。 同样,-u标识帐户的用户名,-p提示我们输入密码:
mysql -u root -p
在交互模式下运行时,客户端显示我们提交SQL语句的提示mysql>。 在每次查询之后,客户端显示服务器的响应,语句执行的时间以及服务器是否报告任何错误或警告。
我们在提示符处发出了CREATE DATABASE语句,以创建名为packt的新数据库:
CREATE DATABASE packt;
然后我们使用CREATE USER创建了一个新的用户帐户,以避免在我们的日常工作中使用root。 该帐户名为tboronczyk,允许从localhost进行身份验证:
CREATE USER "tboronczyk"@"localhost" IDENTIFIED BY "P@$$w0rd";
如果帐户将从其他系统连接到服务器,则系统的主机名或IP地址可以替换localhost。 MySQL将每个用户名和主机名对视为单独的帐户,例如tboronczyk @ localhost和tboronczyk @ 192.168.56.100是不同的帐户,可以分配不同的权限。
注意
您可以在主机名中使用通配符来创建可以从多个系统连接的帐户。 %通配符匹配零个或多个字符,因此可用于表示任何系统:
CREATE USER "tboronczyk"@"%" IDENTIFIED BY "P@$$w0rd";
创建新帐户时没有任何权限,因此我们必须通过执行GRANT语句来分配它们:
GRANT CREATE, DROP, ALTER, LOCK TABLES, INSERT, UPDATE, SELECT, DELETE ON packt.* TO "tboronczyk"@"localhost";
该语句为packt数据库中的所有表(用*表示)分配以下权限:
- CREATE: 这允许用户创建数据库和表
- DROP: 这允许用户删除整个表和数据库
- ALTER: 这允许用户更改现有表的定义
- LOCK TABLES: 这允许用户锁定表以进行独占读或写访问INDEX: This allows the user to create table indexes
- INSERT: 这允许用户将记录添加到表中
- UPDATE: 这允许用户更新表中的记录
- SELECT: 这允许用户从表中检索记录
- DELETE: 这允许用户从表中删除记录
完整的权限列表以及允许用户执行的操作可以在http://dev.mysql.com/doc/refman/5.7/en/grant.html上的官方MySQL文档中找到。
接下来,我们指示MySQL使用FLUSH PRIVILEGES重建其权限缓存:
FLUSH PRIVILEGES;
当MySQL启动时,它会将用户和权限信息缓存在内存中(您将从第5章“管理文件系统和存储”中回忆起,从内存读取比从磁盘读取要快得多),然后每次用户执行时检查缓存验证他们是否具有足够权限的操作。每当我们创建或删除用户帐户或授予或撤销帐户的权限时,我们都需要告诉MySQL更新其缓存,否则我们的更改将在MySQL下次启动时被忽视。
当使用mysql连接到MySQL时,您可能经常使用其他选项调用它。常见选项是-h,如果MySQL在不同的系统上运行,它将标识远程服务器的主机名或IP地址。 -e直接执行语句,而不是以交互方式启动mysql。此外,要使用特定数据库,可以在命令的其余部分之后给出名称,也可以使用-D来指定它。以下示例通过连接到192.168.56.100上的MySQL服务器并对其sakila数据库执行SELECT语句来演示所有这些:
mysql -u tboronczyk -p -h 192.168.56.100 -D sakila -e "SELECT last_name, first_name FROM actor"
See also
Refer to the following resources for more information on working with MySQL:
- The mysql manual page (man 1 mysql)
- MySQL 5.7 reference manual (http://dev.mysql.com/doc/refman/5.7/en)
- Jump Start MySQL (http://www.amazon.com/Jump-Start-MySQL-Timothy-Boronczyk/dp/0992461286)
- MySQL Tutorial (http://www.mysqltutorial.org/)
数据库设置_CentOS7 - 设置MySQL数据库相关推荐
- mysql执行代码段_mysql的event schedule 可以让你设置你的mysql数据库再某段时间执行你想要的动作...
mysql的event schedule 可以让你设置你的mysql数据库再某段时间执行你想要的动作 这与视图是不相同的. create event test1 on schedule every 1 ...
- mysql基本命令大全_Django 学习笔记之 如何设置和操作 mysql 数据库
我们之前学习了 在 django项目如何设置和操作sqlite 数据库. 在这一节中,我们会借由旧有思路来设置和操作 mysql 数据库.同时,我们会学习基本的mysql的SQL 命令,方便我们进行 ...
- 从mysql数据库中读取二进制文件_数据库技术之在MYSQL数据库中如何存取二进制文件...
[数据库技术之在MYSQL数据库中如何存取二进制文件]在MySQL数据库中,不可以存放文字信息,还可以存放图片.声音.文件等二进制信息.那么在MYSQL数据库中中如何存取二进制文件?下面,武汉宏鹏鲁广 ...
- Mysql数据库(三)——mysql数据库高级操作
Mysql数据库(三)--mysql数据库高级操作 一.指定主键的另一种方式 二.克隆/复制一个表 1.方法一 2.方法二 三.清空表,删除表内数据 1.方法一 2.方法二 3.方法三 4.三个删除方 ...
- Mysql数据库(一)——mysql数据库初体验
Mysql数据库(一)--mysql数据库初体验 一.数据库的概念 1.数据库的组成 ①.表 ②.数据库 2.数据库类型 ①.关系型数据库 ②.非关系型数据库(NoSQL (Not Only SQL) ...
- java如何实现e的次方_Java开发如何更改MySQL数据库datadir目录之MySQL数据库索引实现...
引言 MySQL是一个关系型数据库管理系统,由瑞典MySQL AB 公司开发,目前属于 Oracle 旗下产品.MySQL 是最流行的关系型数据库管理系统之一,在 WEB 应用方面,MySQL是最好的 ...
- php mysql数据库同步_实现MySQL数据库同步实例演示_MySQL
本次实验的主要目的是剖析配置MySQL(和PHP搭配之最佳组合) 数据库的主辅MySQL数据库同步的实际操作步骤,我前两天在相关网站看见的资料,觉得挺好,就拿出来供大家分享,开始具体的配置. 本次试验 ...
- MariaDB数据库——一款比Mysql数据库更优秀的数据库
MariaDB数据库简介 MariaDB数据库是Mysql数据库的姊妹,它的使用方式与Mysql完全相同,而且MariaDB数据库的性能比Mysql更加优秀.MariaDB数据库与Mysql数据库的拥 ...
- 如何修改mysql数据库服务器时间,修改mysql数据库服务器时间格式
修改mysql数据库服务器时间格式 内容精选 换一换 本章节为您介绍使用Maxwell同步工具将线下基于binlog的数据迁移到MRS Kafka集群中的指导.Maxwell是一个开源程序(https ...
- asp.net mysql 创建变_[ASP.net教程]EF Core使用CodeFirst在MySql中创建新数据库以及已有的Mysql数据库如何使用DB First生成域模型...
[ASP.net教程]EF Core使用CodeFirst在MySql中创建新数据库以及已有的Mysql数据库如何使用DB First生成域模型 0 2018-06-30 07:00:08 官方教程: ...
最新文章
- tomcat9配置https-pfx
- SAP MM 采购订单含税价实现方式
- Win32API 窗口程序的创建7大步骤
- 相移波束形成算法的MATLAB仿真
- Java 7之集合类型 - 二叉排序树、平衡树、红黑树---转
- WebApplicationContext初始化
- map原理 java_RxJava的基本原理以及Map,flatMap的原理
- NSUserDefaults
- Python 字符串操作(string替换、删除、截取、复制、连接、比较、查找、包含、大小写转换、分割等)
- 函数声明是形参类型省略
- 详解S60 WebKit 21772编译教程
- 画面风格写实的5z20
- jQuery系列之目录汇总
- java的 交换排序 快速排序算法_数据结构之排序算法Java实现(4)—— 交换类排序之快速排序算法...
- 联想拯救者Legion Y7000P 2020款(10代INTEL+GTX1650)安装ubuntu16.04(双系统)
- SOME/IP报文格式-Payload
- 基于微博评论的情感分析研究(小记)
- 蓝桥杯python小学组_蓝桥杯python组如何准备
- b站的服务器在哪个文件夹,b站缓存的视频在哪个文件 具体操作步骤
- android手机查看root,怎么看安卓手机是否Root 一键检测手机root方法
热门文章
- for循环中let,var 的经典面试题:for循环中 console.log(i)详解
- regedit或child_process添加注册表
- Java中的序列化与反序列化机制
- mybatis plus实现多表分页条件查询
- linux 编辑器_Linux的vi编辑器详细总结
- python中int input_python中的input是什么
- mysql数据库连接不稳定_连接 MySQL 数据库失败频繁的原因探秘
- qt中继承pushbutton自定义控件设置按钮样式
- C/C++ ltoa函数 - C语言零基础入门教程
- 服务器修改用户组权限设置,如何:修改用户的权限