Linux数据库的相关配置以及理解

数据库技能:

  1. 了解数据库如何存储数据信息
  2. 如何部署并管理数据库服务器
  3. 基本的数据操作
  4. 远程维护
    Database DB :数据库
    直接安装数据库标配的服务部足
    1. 默认的管理员账号root的密码为空
    这里的管理员密码 不是Linux系统root用户的密码,这里的密码指的是数据库管理员密码
    Mysqladmin +【-u用户名】 +【-p旧密码】 +password ‘新密码’
    mysqladmin -uroot password ‘pwd@123’ #修改管理员root登录数据库密码
    2. 默认不支持存储中文数据
    Vim /etc/my.cnf #修改数据库字符集编码,让数据库能存储中文数据
    character_set_server=utf8 #进入之后之间添加,默认字符集为utf8修改完支持中文数据
    Systemctl restart mariadb #修改完毕重启服务
    mysql -uroot -ppwd@123 #测试数据库连接, 能成功登录就ok;(格式就是-u加用户名 –p加设置的登录密码)

数据路内指令配置:
数据库内指令不区分大小写
每一行操作指令的末尾;号结束
进入数据库内的指令 /c 可以放弃当前指令行
数据库的名字,密码,用户,都是区分大小写的;
show databases; #列出多少个数据库(第二个单词后面的S必须加上)
use +数据库名字 ; #使用某个数据库
show tables; #查看数据库内有哪些表格
create database +名字 ; #创建新的数据库(数据库的名字区分大小写;数据库的名字不能是纯数字)
drop database +名字 ; #彻底删除数据库
syntax #语法 ;line:行;row;行 column:列;
表格的创建和删除:
Char 定长字符类型 比如 char(11)代表这一列最多存11个字符
Varchar,变长字符类型。
create table base(学号 char(13),姓名 varchar(20),性别 char(1),手机号 char(13),通讯地址 varchar(48)); #写这条的时候要注意,中文后面有空格,除了中文剩下的字符标点符号全部都是英文的。而且在创建的时候要看好库的名字,以免建错库里(后面的这个char字符数号表示的是,写几个在里面就显示几个字符)
create table +数据库名字.表格名称(); #在什么数据库下面创建表格,数据库和表格中间用.隔开
describe(desc) +创建的表格名字; #查看创建表格的属性
describe (desc)+数据上库名称. 创建的表格名字; #查看某个数据库下面的表格属性
insert into +{数据库名称.}表格名称 values(‘数据’,’数据’,’数据’,’数据’,’数据’); #向某个表格内插入数据(这里面要注意,所有的标点符号全部是英文的,而且数据和数据中间用单引号隔开)
select * from +{数据库名称.}表格名称; #查看某个表格的内容
drop table +{数据库名称.}表格的名称 ; #删除整个表格
delete from +{数据库名称.}表格的名称; #删除表格里面的内容
复制表格:
Create table +新表格名 like +{数据库名称.}旧表格名; #复制表格(只复制表格架构不要数据)
Create table +新表名 select * from +{数据库名称.}旧的表名 #复制表格(复制表格的架构以及 表格内的数据)
Field #字段、列
create table +{数据库名称.}表格的名称(id int,gongzi float(8,2)); #创建数值型表格int代表整数的意思 float里面的数值代表总共8位,有2位小数点。
insert into +{数据库名称.}表格名称 values(‘数据’,’数据’,’数据’), (‘数据’,’数据’,’数据’), #像表格内插入多条数据,括号之间用英文的,号隔开就可以创建多个记录;

insert into +{数据库名称.}表格名称(列的名字,列的名字) values(‘数据’,’数据’), (‘数据’,’数据’), #向表格的某几列插入数据;向表格内插入多条数据,括号之间用英文的,号隔开就可以创建多个记录;

mysql -uroot -ppwd@123 +数据库名字 < +/目录/文件名称 #将文件导入到某个数据库中

update +{数据库名称.}表格的名称 set +表格内列的名字=修改后的名字或者数据 where +表格列的名字=’修改之前的内容是什么’ #注意set后面的表格内列的名字是不需要加引号的 等号后面 如果是字符类型的需要加引号,如果是数值类型的不要加引号
select * from +表格的名称 where +列的名字=’+要看的信息’ #单独查看表格内的某一个东西的数值;
select +列的名称,列的名称 from +表格的名称 #查看哪些列的数据
delete from +表格名称 where 列的名字=‘要删除的数据’; #只删除符合条件的数据
select +列的名字 as +要显示的名称 from +表格的名字 #查看某一列的数据 并且修改要显示的名称
select +数字的加减乘除 #计算器功能
where 语句后面的符号可以变化:
= #相等 !=不相等
数值的比较符号:
= #等于 !=不等于 >、>= #大于、大于或等于 <、<= #小于、小于或等于
使用多个条件的时候可以用
OR #逻辑的或 and #逻辑的与
select * from +{数据库名称.}表格的名称 +列的名称 in(‘数值’,‘数值’,‘数值’,‘数值’); #列出,表中 这几个数值的数据
select * from +{数据库名称.}表格的名称where +列的名称 like ‘%数值%’; #模糊查询表格中的数据 (中间的数值代表的是关键字,前后的%号代表的是不确定的字符,也可以用_表示,_表示的是不确定的字符只有一个。)
select * from +{数据库名称.}表格的名where +l列的名称 not in (‘数值’,‘数值’); #列出表中除了 这个数值的其他数据
in 列出这个()内的所有数据 like 匹配的数据像或者不像这个数据
select count(*) from +{数据库名称.}表格的名where 列的名称=‘数值’; #列出这个列的这个数值有多少个(count是总共有多少个;sum是总和;avg是平均值)
select * from +{数据库名称.}表格的名where 列的名称=‘数值’ order by 列的名称 desc; #列出这个表格中的这个列的数值,为降序 (默认是升序 后面加desc就是降序)
select * from +{数据库名称.}表格的名where 列的名称=‘数值’ limit 数字,数字 #列出表中 列的名称=‘数值’ 的第n~n条记录(LIMIT n,n)
select * from +{数据库名称.}表格的名 limit数字; #列出这个表中前几行的数据

备份以及恢复备份操作 进入到命令行模式
< #表示将这个文件导入到什么里面;> #表示将和这个文件导出到哪个文件里面
上面这个两个都是覆盖文件的内容 如果>>两个大于号就不覆盖内容
单个数据库备份以及恢复备份:
Mysqldump –u用户名 –p密码 +数据库名称 >存放的文件位置 # >代表将这个数据导出到哪个文件下面(<代表将这个文件导入到什么地方。)这个备份是不记录创建数据库的备份。
Mysql –u用户名 –p密码 +数据库名称 < 存放文件的位置 #将备份的数据库恢复到某个库 (单个库导入的时候必须得有数据库的名称)
多个数据库备份以及恢复备份:
Mysqldump –u用户名 –p密码 –databases +数据库名称 +数据库名称 >存放文件名称 #备份多个数据库(这个操作是连创建数据库的操作也备份上)
Mysql –u用户名 –p密码 < 存放文件的位置 #将备份的数据库恢复到数据库中(多个数据库导入的时候不用写具体的数据库的名称)

Mysqldump –u用户名 –p密码 –all –databases >存放文件名称 #备份所有数据库;

重置管理员密码、远程登录数据库、企业OA系统的迁移;
如何连接远程数据库
Mysql –u用户名 –p 密码 –h服务器地址
用grant给权限以后会自动在数据库user表中自动生成用户;
grant 权限列表(all所有权限/select查看权限/update更改权限/delete删除权限/) on 数据库名称。*(代表数据库内所有都可以) to 指定的用户名@客户机地址identified by ‘指定的密码’; #允许这个用户名用本机地址(或IP地址登录数据库)并且指定密码登录;进入数据库内才能设置这个;

grant权限列表(all所有权限/select查看权限/update更改权限/delete删除权限/)on .(这里的*.*是所有数据库中的所有表格都有权限) to 指定的用户名@‘192.168.10.%’(百分号代表通配符,可以匹配这个网段所有的主机;可以直接写一个%可以匹配所有的IP地址) identified by ‘指定的密码’ with grant option;后面这三个单词可以带上授权,可以给别的用户授权。
Show grants ; #查看本机的授权用户的权限
Show grants for 用户名@本机地址/IP地址 #查看某一个授权用户的权限;注意查询的时候要注意本机地址和IP地址一定要写当初给权限时候的;

revoke权限列表(all所有权限/select查看权限/update更改权限/delete删除权限/) on 数据库名称.* from 用户名@指定的用户名@客户机地址; #取消某个指定用户的权限。撤销时并不删除用户。
Drop user 用户名@指定的用户名@客户机地址; #彻底删除用户

数据库管理员密码忘记怎么办:
1、 先将mariadb服务关闭,绕过密码验证
systemctl stop mariadb #先停止数据库服务
mysqld_safe --skip-grant-tables & #在开启绕过密码验证 (&代表这个进程在后台运行部占用界面)
2、 确保不需要密码能连接成功本机
mysql –uroot #上述两个修改完就不用密码进入数据库
3、 通过修改mysql.user表来重新设置新密码
update mysql.user set password=password(‘xiaoquan521’) where user=‘root’ and host=‘localhost’; #中间的密码是用password函数加密的密码 后面的host是代表本机登录将密码改为这个
4、 关闭mysqld_safe,重新低筒正常mariadb服务
pkill -9 mysql #内核强制杀死第一步mysql_safe 这个进程才能重新正常开启数据库服务器。
systemctl restart mariadb #重新开启数据库服务
5、 重新以新密码连接数据库
Mysql –uroot –ppxiaoquan521 #用新密码登录
6、 建立删除空密码用户
先为管理员root设置密码在删除空密码
Delete from mysql.user where=password=’’; #删除空密码用户

远程维护数据库(图形化模式):
这里用的是mysql-front 这个软件来远程数据库
1、 先要创建一个用户允许这个账户登录到数据库中。直接输入管理员密码是进不来的。只能修改之后才能远程登录
grant (all所有权限/select查看权限/update更改权限/delete删除权限/)l on 数据库名称 to 指定账户@指定主机地址或者IP地址 identified by ‘指定密码’; #允许哪个用户登录并且有什么权限
2、 设置完成以后就可以远程登录数据库了。
登录的时候用户名和账户密码是给权限的内个账户和密码。
企业OA系统部署,网站备份、数据库备份、OA平台的迁移
1、 先将准备好的OA办公平台上传到Linux服务器上,将文件放到/var/www/下面
unzip /root/信呼协同办公_v1.8.1.zip -d /var/www/ #将文件解压到目录下面
2、 添加本地域名为oa.tedu.cn
Vim /etc/hosts 在这个文件本机地址后面添加域名
3、 创建新的虚拟网页
vim /etc/httpd/conf.d/vhosts.conf 在这个文件下面写
:80> 80端口
ServerName oa.tedu.cn 域名为
DocumentRoot /var/www/oa 访问的目录

4、 重新启动Httpd服务
Systemctl restart httpd
5、 在数据库中创建OA平台专属的数据库并且给一个登陆的授权
6、 最后在网页上登录就可以了
企业OA平台迁移
1、 准备一台新的服务器,安装Lamp(httpd mariadb-server php mariadb php-mysql)
yum -y install httpd mariadb-server php mariadb php-mysql
2、 备份OA平台服务器的相关资料(Web 数据库)
Systemctl stop httpd #先停止旧服务器上的服务
tar -zcPf /root/oa_web.tgz /etc/httpd/conf.d/vhosts.conf /var/www/oa/ #将OA系统的所有配置压缩到某个文件夹下面
mysqldump -uroot -pxiaoquan521 --databases oadb > /root/oa_database.sql #将OA数据库的信息解压到某个目录下面
vim /etc/hosts #将这个文件下面oa.tedu.cn这个域名对应的IP地址修改成新的服务器
3、 在新的服务器上导入备份资料,重新开启lamp平台
在旧的服务器上操作(复制本机资料到远程目标主机上):
Scp –r 备份文件 root@ip地址:/复制到哪个文件下面
tar -xPf /root/oa_web.tgz #将复制过来的文件解压到文件(因为有P所有有绝对路径)
mysql -uroot < /root/oa_database.sql #将复制过来的数据库文件导入到数据库中
grant all on oadb. to runoa@localhost identified by ‘pwd@123’; #允许哪个用户登录并且有什么权限(这个操作和部署OA数据库的时候给的权限是一样的操作)
systemctl restart httpd #重启Httpd 服务就可以访问了

你可能感兴趣的:(运维基础配置,Linux,服务器配置)