######unit8数据库#########
本单元涵盖的主题:
*配置和管理数据库
*配置数据库用户和访问权限
*备份和恢复数据库
######数据库的基本sql语句操作########
1.下载安装
<code>yum </code><code>install</code> <code>mariadb-server -y</code>
<code>systemctl start mariadb</code>
2.数据库查询操作:
<code>mysql </code><code>##登陆</code>
<a href="https://s2.51cto.com/wyfs02/M02/95/ED/wKioL1kbGqWwle1UAAC0LkrIDX4656.png" target="_blank"></a>
<code>show databases; </code><code>##显示数据库</code>
<a href="https://s1.51cto.com/wyfs02/M00/95/ED/wKiom1kbGqezLP8sAABsuGh7Olk300.png" target="_blank"></a>
<code>use mysql; </code><code>##进入mysql库</code>
<code>show tables; </code><code>##显示当前库中表的名称</code>
<a href="https://s2.51cto.com/wyfs02/M01/95/ED/wKiom1kbGsLg4j2EAABCLH00IiM529.png" target="_blank"></a>
<code>desc linux; </code><code>##显示mysql库中的表linux的字段</code>
<a href="https://s2.51cto.com/wyfs02/M01/95/ED/wKioL1kbGsPCfPhJAAB-g4LLDYU256.png" target="_blank"></a>
<code>select</code> <code>* from user; </code><code>##查询user表中的所有内容(*可以用表中任何字段代替)</code>
<code>select</code> <code>User,Host,password from user; </code><code>##查询user表中的User,Host,password字段</code>
<code> </code><code>quit </code><code>##退出</code>
<code>netstat</code> <code>-antlpe | </code><code>grep</code> <code>mysql </code><code>##查看mysql状态</code>
<a href="https://s5.51cto.com/wyfs02/M00/95/ED/wKiom1kbGqnDs8rSAABmdm8iR4k457.png" target="_blank"></a>
vim /etc/my.cnf
<code>10 skip-networking=1</code>
<code>systemctl restart mariadb</code>
<code>mysql_secure_installation </code><code>##设置mysql服务</code>
<a href="https://s4.51cto.com/wyfs02/M01/95/ED/wKiom1kbGsCzFG13AAEWBvfGa2E947.png" target="_blank"></a>
用户登陆
<code>mysl -uroot -pwestos </code><code>##-u表示指定登陆用户,-p表示此用户密码</code>
<code>mysql -uroot -p </code><code>##登陆后输入密码</code>
<a href="https://s1.51cto.com/wyfs02/M01/95/ED/wKioL1kbGsCCXDjFAAFL7SSwoBg898.png" target="_blank"></a>
3.数据库及表的建立
<code>create database westos; </code><code>##创建westos数据库</code>
<code>create table linux( </code><code>##创建linux表,表中含有两个字段username和password</code>
<code> </code><code>-> username varchar(20) not null, </code><code>##username字段字符长度最大为20个,并且不能为空</code>
<code> </code><code>-> password varchar(25) not null ); </code><code>##password字段字符长度最大为25个,并且不能为空</code>
<code>insert into linux values (</code><code>'user1'</code><code>,</code><code>'westos123'</code><code>); </code><code>##向linux表中插入数据,username字段的数据为user1,password字段为westos123不加密</code>
<code>insert into linux values (</code><code>'user1'</code><code>,password(</code><code>'123'</code><code>) ); </code><code>##插入password字段的数据是用password加密的</code>
4.更新数据库信息
<code>update linux </code><code>set</code> <code>password=password(</code><code>'redhat'</code><code>) where username=</code><code>'user1'</code><code>; </code>
<code> </code><code>##更新user1的密码并加密</code>
<a href="https://s2.51cto.com/wyfs02/M02/95/ED/wKiom1kbGsWy2n4SAAEyaX8ZqNQ053.png" target="_blank"></a>
<code>update linux </code><code>set</code> <code>password=</code><code>'redhat'</code> <code>where username=</code><code>'user1'</code><code>; </code><code>##更新user1的密码不加密</code>
<code>update linux </code><code>set</code> <code>password=</code><code>'redhat'</code> <code>where (username=</code><code>'user1'</code> <code>or username=</code><code>'user2'</code><code>); </code><code>##更新user1和user2的密码</code>
<code>delete from linux where username=</code><code>'user1'</code><code>; </code><code>##删除user1的信息</code>
<code>alter table linux add class varchar(20) not null; </code><code>##添加class字段到linux表中的最后一列</code>
<code>alter table linux add </code><code>date</code> <code>varchar(20) not null after password; </code><code>##添加date字段在password字段之后</code>
<code>alter table linux drop class; </code><code>##删除linux表中class字段</code>
<a href="https://s2.51cto.com/wyfs02/M02/95/ED/wKioL1kbGs6zQPwWAAC2UTUyJuM664.png" target="_blank"></a>
5.删除数据库
<code>delete from linux where username=</code><code>'user1'</code><code>; </code><code>##从linux表中删除user1的信息</code>
<code>drop table linux; </code><code>##删除linux表</code>
<a href="https://s1.51cto.com/wyfs02/M01/95/ED/wKiom1kbGtGw6WwzAAA4EPYuQKM944.png" target="_blank"></a>
<code>drop database westos; </code><code>##删除westos库</code>
6.数据库的备份
<code>mysqldump -uroot -pwestos --all-database </code><code>##备份所有表中的所有数据</code>
<code>mysqldump -uroot -pwestos --all-database --no-data </code><code>##备份所有表,但不备份数据</code>
<code>mysqldump -uroot -pwestos westos </code><code>##备份westos库</code>
<code>mysqldump -uroot -pwestos westos > </code><code>/mnt/westos</code><code>.sql </code><code>##备份westos库并把所有数据保存到/mnt/westos.sql</code>
<code>mysqldump -uroot -pwestos westos linux > </code><code>/mnt/linux</code><code>.sql </code><code>##备份westos库中的linux表并把所有数据保存到/mnt/linux.sql</code>
<code>mysql -uroot -pwestos -e </code><code>"drop database westos;"</code> <code>##删除westos库</code>
<code>mysql -uroot -pwestos -e </code><code>"create database westos;"</code> <code>##建立westos库</code>
<code>mysql -uroot -pwestos westos < </code><code>/mnt/westos</code><code>.sql </code><code>##把数据导到westos库</code>
<code>mysql -uroot -pwestos -e </code><code>"select * from westos.linux;"</code> <code>####查询westos库的linux表中的所有内容</code>
<code>mysql -uroot -pwestos westos < </code><code>/mnt/linux</code><code>.sql </code><code>##把linux表的数据导到westos库</code>
7.用户授权
<code>create user cui@localhost identified by </code><code>'123'</code><code>; </code><code>##建立用户cui,此用户只能通过本机登陆</code>
<code>create user cui@</code><code>'%'</code> <code>identified by </code><code>'123'</code><code>; </code><code>##建立用户cui,此用户可以通过网络登陆</code>
<a href="https://s5.51cto.com/wyfs02/M00/95/ED/wKiom1kbGtmTzW2pAADlCNMZYIw334.png" target="_blank"></a>
<code>grant insert,update,delete,</code><code>select</code> <code>on westos.linux to cui@localhost; </code><code>##用户授权</code>
<code>grant </code><code>select</code> <code>on westos.linux to cui@</code><code>'%'</code><code>;</code>
<a href="https://s2.51cto.com/wyfs02/M01/95/EE/wKioL1kbIESxQ-f4AABOwP35HZs677.png" target="_blank"></a>
<code>show grants from cui@</code><code>'%'</code><code>; </code><code>##查看用户授权</code>
<code>show grants </code><code>for</code> <code>cui@localhost;</code>
<a href="https://s3.51cto.com/wyfs02/M01/95/ED/wKioL1kbHqqCcyioAAE3Goyb9Io238.png" target="_blank"></a>
<code>revoke update on westos.linux from cui@localhost; </code><code>##去除用户更新的权力</code>
<code>revoke delete on westos.linux from cui@localhost; </code><code>##去除用户删除的权力</code>
<a href="https://s4.51cto.com/wyfs02/M02/95/EE/wKiom1kbHqvTc5ImAACUtIVMunI918.png" target="_blank"></a>
<code>drop user cui@</code><code>'%'</code><code>; </code><code>##删除用户</code>
<a href="https://s1.51cto.com/wyfs02/M02/95/ED/wKioL1kbHquTD8xPAAEQ4e3AH5g678.png" target="_blank"></a>
测试:
<code>mysql -ucui -p123 </code><code>##通过本机登陆</code>
<a href="https://s1.51cto.com/wyfs02/M02/95/ED/wKiom1kbGtqQ0zj6AABCH2isx2U159.png" target="_blank"></a>
<code>mysql -ucui -p123 -h localhost</code>
<a href="https://s5.51cto.com/wyfs02/M00/95/ED/wKioL1kbGtvDdog1AABU-GvIr44524.png" target="_blank"></a>
vim /etc/my.cnf
<code>10 skip-networking=0</code>
systemctl restart mariadb
mysql -ucui -p123 -h 172.25.254.162 ##通过网络登陆
8.密码修改
mysqladmin -uroot -pwestos password 123 ##修改超级用户密码
####当超级用户密码忘记####
ps aux | grep mysql ##过滤mysql的所有进程并结束这些进程
kill -9 mysqlid ##强行停止进程
mysqld_safe --skip-grant-table & ##开启mysql登陆接口并忽略授权表
mysql ##直接不用密码登陆
<a href="https://s1.51cto.com/wyfs02/M00/95/EE/wKiom1kbHqzS-cK8AACvUnQlVzM775.png" target="_blank"></a>
update mysql.user set Password=password('123') where User='root'; ##更新超级用户密码信息
mysql -uroot -p123 ##登陆测试
#########数据库网页管理##########
1.安装
yum install httpd php php-mysql -y
systemctl start httpd ##开启httpd
systemctl enable httpd
systemctl stop firewalld ##关闭火墙
systemctl disable firewalld
需要下载
phpMyAdmin_4.7.0_beta1_all_languages.zip ##下载数据库网页软件压缩包
tar jxf phpMyAdmin_4.7.0_beta1_all_languages.tar.gz2 -C /var/www/html ##解压压缩包并存放到/var/www/html
mv mv phpMyAdmin-4.7.0-beta1-all-languages/ /var/www/html/mysqladmin ##修改文件名
cd mysqladmin
cp -p config.sample.inc.php config.inc.php ##修改配置文件
vim config.inc.php
<code>17 $cfg[</code><code>'blowfish_secret'</code><code>] = </code><code>'mysql'</code><code>; /* YOU MUST FILL IN THIS FOR COOKIE AUTH! */</code>
systemctl restart httpd
测试:
<a href="https://s3.51cto.com/wyfs02/M01/96/AE/wKioL1kkPR7wOyMsAAFfP8sHcQ0385.png" target="_blank"></a>
<a href="https://s3.51cto.com/wyfs02/M00/95/EE/wKiom1kbINqzB8SRAAHdFN15Sbc911.png" target="_blank"></a>
本文转自cuijb0221 51CTO博客,原文链接:http://blog.51cto.com/cuijb/1926453