天天看点

3-unit8 Mariadb数据库

######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>-&gt; username varchar(20) not null,   </code><code>##username字段字符长度最大为20个,并且不能为空</code>

<code>   </code><code>-&gt; 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 &gt; </code><code>/mnt/westos</code><code>.sql       </code><code>##备份westos库并把所有数据保存到/mnt/westos.sql</code>

<code>mysqldump -uroot -pwestos westos linux &gt; </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 &lt; </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 &lt; </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 &amp;   ##开启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