跨境浏览网站,椒江网站建设,对网站有效的优化软件,wordpress插件的开发【运维工程师学习五】数据库 1、常用的关系型数据库2、C/S结构3、MariaDB图形客户端4、安装MariaDB5、启动MariaDB及验证启动是否成功6、验证启动——端口7、验证启动——进程8、MariaDB配置文件路径主配置文件解读#xff1a; 9、MariaDB的配置选项10、MariaDB客户端连接1、在… 【运维工程师学习五】数据库 1、常用的关系型数据库2、C/S结构3、MariaDB图形客户端4、安装MariaDB5、启动MariaDB及验证启动是否成功6、验证启动——端口7、验证启动——进程8、MariaDB配置文件路径主配置文件解读 9、MariaDB的配置选项10、MariaDB客户端连接1、在本机即使root密码为空客户端一样可以连接的使用命令mysql –u root –p 提示输入密码时直接回车即可进入数据库2、修改数据库超管root的密码除了上述方法还有另外一种方法就是进入数据库后通过数据库的更新操作update可以实现具体方法请看下节“mariadb修改root密码”3、允许root用户远程连接在业务环境中不会这样做但现在是实验为客户端连接linux的Mariadb做铺垫使用命令行客户端进入数据库后执行命令4、刷新MySQL的系统权限相关表 11、图形客户端的使用Navicat为例12、默认安装后系统自带3个数据库13、mariadb修改root密码14、客户端常用命令——数据库相关1显示已有的数据库2创建数据库3删除数据库 15、导入数据16、为业务数据库创建指定的用户17、客户端常用命令——表相关18、数据库备份1备份指定数据库2备份所有数据库3备份指定数据库指定表(多个表以空格间隔)4备份指定数据库排除某些表 19、还原/导入数据库 1、常用的关系型数据库
db根据存储模型划分数据库类型主要可分为:网状数据库(Network Database)、关系数据库(Relational Database)、树状数据库(Hierarchical Database)、面向对象数据库(Object-oriented Database)等。商业应用中主要是关系数据库而关系数据库中常见的软件有比如Oracle、DB2、Sybase、MS SQL Server、Informax、MySQL等等。 实数据库系统几乎支持所有的操作系统也就是上述数据库几乎与平台无关当然除SQL Server和Access以外因为这是微软的东西平台依赖性很强的只在windwos系统平台上运行。
关系型数据库系统除了全面列出来的还有很多但最常用的也不外乎
Oracle #闭源、收费金融行业或其它行业大型公司的选择MySQL #开源、免费互联网公司的最爱MS SQL Server #闭源、收费一些互联网公司及传统中小企的选择 注MySQL已被Oracle公司收购。MySQL原创始人重新开发了一个分支叫MariaDB完全兼容MySQL包括API和命令行使之能轻松成为MySQL的代替品。CentOS7系统中已经将默认的数据库系统MySQL替换为MariaDB因此接下来的关于数据库的安装及使用演示均是基于MariaDB。 2、C/S结构
数据库的软件体系结构是C/SClient/Server客户端/服务端要访问或管理数据库必须通过对应的客户端。认清这个问题有两个好处以MariaDB为例
下图中初学者往往会mariadb.x86_64为数据库实则它只是客户端 mariadb.x86_64数据库客户端mariadb-server.x86_64才是数据库服务端选择最适合自己使用习惯的客户端有利于提高认知及学习效率。mariadb.x86_64是命令行客户端初期建议尝试几种图形客户端。
3、MariaDB图形客户端
phpMyAdminMySQL WorkbenchAdminerNavicat for MySQLOmniDBDataGrip(JetBrains旗)DbeaverSQLyog
4、安装MariaDB
本次安装使用“软件仓库安装法”。同时安装服务端及客户端
yum install -y mariadb-server mariadb5、启动MariaDB及验证启动是否成功
启动、设置开机自动启动、查看状态
systemctl start mariadb6、验证启动——端口
netstat -utnlp3306是MySQL及MariaDB的默认端口。端口信息及进程信息均表示数据库MariaDB启动正常。
7、验证启动——进程
ps aux | grep mariadb8、MariaDB配置文件路径
主配置文件/etc/my.cnf #MySQL也是这个所以说MariaDB完全兼容性
vi /etc/my.cnf [mysqld]
datadir/var/lib/mysql
socket/var/lib/mysql/mysql.sock
symbolic-links0
#
# This group is read both both by the client and the server
# use it for options that affect everything
#
[mysqld_safe]
log-error/var/log/mariadb/mariadb.log
pid-file/var/run/mariadb/mariadb.pid
[client-server]#
# include all files from the config directory
#
!includedir /etc/my.cnf.d 主配置文件解读
[***]表示配置分组如[mysqld]表示从下一行开始至出现 [***]的行均为服务端的配置行。本文件为默认配置服务端只设置了两个选项一个是datadir数据保存路径一个是socket套接字文件路径!includedir表示其它附加的配置文件路径。本例中包含的/etc/my.cnf.d文件夹中凡是以.cnf结尾的文件都会被当数据库的配置文件的一部分。如果这个文件夹中的配置文件定义的选项与主配置文件中有重复则以该文件夹的配置为准。配置文件引入“包含”的概念一般是为了实现配置文件的分类提高配置文件的可读性。例如可以把关于服务端的配置选项全部放在server.cnf中将客户端的配置选项放在client.cnf中。
9、MariaDB的配置选项 注 1、关于搜索到的配置举例请不要盲目复制因为很多选项都是基于特定的硬件内存大小及CPU性能 2、配置的优化是根据自身的业务环境而定并且是在有性能监控数据及遇到的问题总结做支撑例如遇到错误提示“超出连接数”那就要修改最大连接数、遇到有大量请求在等待那就可能要修改最大并发数、发现内存及CPU占用过高那就可能要修改缓存大小等等 3、早期不用太热衷于玩弄各个高级配置项基本配置都够你玩半年配合web练习天才除外 10、MariaDB客户端连接
mysql -u root -p使用yum安装的mariadb默认管理员root的密码为空并且只允许本机连接不允许远程连接。因此我们需要为root用户配置密码方法如下
1、在本机即使root密码为空客户端一样可以连接的使用命令mysql –u root –p 提示输入密码时直接回车即可进入数据库
2、修改数据库超管root的密码除了上述方法还有另外一种方法就是进入数据库后通过数据库的更新操作update可以实现具体方法请看下节“mariadb修改root密码”
3、允许root用户远程连接在业务环境中不会这样做但现在是实验为客户端连接linux的Mariadb做铺垫使用命令行客户端进入数据库后执行命令
GRANT ALL PRIVILEGES ON *.* TO root%IDENTIFIED BY 123456 WITH GRANT OPTION;123456为密码上述命令的意思是允许密码为123456的root用户具有数据库中所有数据库的所有权限。
4、刷新MySQL的系统权限相关表
FLUSH PRIVILEGES;11、图形客户端的使用Navicat为例
需要先关闭虚拟机的防火墙才能够连接成功先前文章14、15节说过了这里不再重复自行通过下方链接查阅 https://blog.csdn.net/weixin_43576565/article/details/131376844 连接成功
12、默认安装后系统自带3个数据库
information_schema #此数据库提供了访问数据库元数据的方式mysql #核心数据库存储用户的权限信息等不可以随意修改其内容performance_schema #此数据库为数据库性能优化提供重要的参考信息默认关闭test #有些版本会带顾名思义测试数据库没有内容可删除 13、mariadb修改root密码
具体方法 1、进入etc目录下
cd /etc2、编辑my.cnf文件
vi my.cnf3、在my.ini[mysqld]下添加一行使其登录时跳过权限检查
[mysqld]
skip-grant-tables 4、重启数据库
service mysqld restart5、直接无密码登录数据库
mysql -uroot -p6、查看数据库并使用mysql数据库表
mysql show databases;
mysql use mysql;7、更新密码
mysql update user set passwordpassworD(123456) where userroot;#注意如果Mysql的版本是5.7及以上的话update语句如下
update user set authentication_stringpassworD(123456) where userroot;#刷新数据库的系统权限相关表
FLUSH PRIVILEGES;8、去my.cnf配置文件中删除使其登录时跳过权限检查的配置 9、重启mysql实现密码登录
service mysqld restart14、客户端常用命令——数据库相关
1显示已有的数据库
show databases;命令以;结尾 注意database后面有个s英文中表示复数的意思 整个命令顾名思议就是显示所有数据库默认共4个数据库各个数据库的意义前面已作基本介绍。 注客户端中的命令不支持tab补全表名及列名可以使用tab补全但这个功能默认不开启欲尝试自行搜索我的博客篇幅问题这里不展开说。 2创建数据库
create database mytest; #mytest为数据库名3删除数据库
drop database mytest; #mytest为数据库名注意这里的database没有加s 已经成功创建mytest数据库 上面只是最简单的创建数据库命令如果需要指定数据库的字符集则需要加相关参数。
15、导入数据
source / sql-dftables.txt # /root/ sql-dftables.txt为数据库脚本文件需要输入完整路径。如果脚本中只有表结构则只会在数据库中创建表如果脚本中既有表结构又有数据内容则都会导入。数据库脚本文件其实就是数据库的各种命令的集合。
导入之前先使用use命令连接指定的数据库即后面的导入操作就会导入至该数据库。 注包括后面介绍关于数据库表的操作命令都需要先使用use命令指定数据库。使用source命令最后不用;结尾 16、为业务数据库创建指定的用户
为某数据库创建指定用户基于安全考虑不使用root用户进行业务操作建议为业务数据库创建指定的用户命令如下
GRANT ALL PRIVILEGES ON mytest.* TO test2‘localhostIDENTIFIED BY 12345qwert;或
GRANT SELECT,INSERT,UPDATE,DELETE ON mytest.* TO test2%IDENTIFIED BY 12345qwert;命令解读如下
GRANT后面跟的是权限范围 ALL PRIVILEGES 表示允许所有权限而SELECT,INSERT,UPDATE,DELETE表明只允许查、增、改、删四个权限其它不允许。ON 后面跟的数据库名 mytest.* 表示mystest的所有表都被允许,TO后面之前表示的是用户名不带引号 后面跟的是客户端位置localhost表示仅本机可连%表示任意远程主机还可以指定某IP或IP段 BY后面跟的是该用户的密码 注客户端中的命令不区分大小写只是大家习惯将命令大写内容小写提高整条命令的可读性。 17、客户端常用命令——表相关
显示数据库中的所有表
show tables;关于表的操作命令还有很多如增INSERT、删DELETE、改UPDATE、查SELECT不再演示请自行搜索如搜索“mysql常用命令”
18、数据库备份
数据库备份方法有很多这里仅演示自带的备份工具备份完整的数据库表结构及内容命令如下
1备份指定数据库
mysqldump -u root -p mytest /root/mytest_bak_20230711.sqlmysqldump是一个独立的程序因此这里看到的是系统命令行环境中。
-u root是使用root命令登陆数据库来操作备份动作-p是后面要输入密码与mysql客户端类似mytest是要备份数据库名root/mytest_bak_20230711.sql是备份的目标文件这是一个文本文件只是习惯使用.sql作为文件后缀标识方便识别。mysqldump还有很多用法欲了解更多请自行搜索。备份的文本文件的部分内容。还原则使用前面介绍的source即可。 注意这一步需要推出数据库不能在数据库内执行。 2备份所有数据库
mysqldump -u root -p --all-databases /root/alldatabases_bak_20230711.sql3备份指定数据库指定表(多个表以空格间隔)
mysqldump -u root -p mysql db user event /root/mysql_bak_20230711.sql4备份指定数据库排除某些表
mysqldump -uroot -p mysql --ignore-tablemysql.db --ignore-tablemysql.user /root/123.sql19、还原/导入数据库
mysql use db_name #输入需要还原/导入的数据库名
mysql source /backup/mysqldump/db_name.db #输入还原/导入的数据库路径