mysql-linux-4

上午的课程
多表查询安装图形管理工具-phpmyadmin
用户授权与权限撤销
1.只复制表结构 复制的表中不会复制原来表中的索引或者主键
mysql> create table newuser1 select * from user1 where 1=2;
Query OK, 0 rows affected (0.06 sec)
Records: 0  Duplicates: 0  Warnings: 0


mysql> desc newuser1;
+----------+-----------+------+-----+---------+-------+
| Field    | Type      | Null | Key | Default | Extra |
+----------+-----------+------+-----+---------+-------+
| id       | int(2)    | NO   |     | 0       |       |
| name     | char(30)  | YES  |     | NULL    |       |
| password | char(1)   | YES  |     | NULL    |       |
| uid      | int(11)   | YES  |     | NULL    |       |
| gid      | int(11)   | YES  |     | NULL    |       |
| comment  | char(100) | YES  |     | NULL    |       |
| homefir  | char(150) | YES  |     | NULL    |       |
| shell    | char(50)  | YES  |     | NULL    |       |
+----------+-----------+------+-----+---------+-------+
8 rows in set (0.00 sec)


mysql> select * from newuser1;
Empty set (0.00 sec)
2.复制表
mysql> create table userbak select * from user1;
Query OK, 46 rows affected (0.04 sec)
Records: 46  Duplicates: 0  Warnings: 0


mysql> show tables;
+---------------+
| Tables_in_db3 |
+---------------+
| user1         |
| userbak       |
| usertab       |
+---------------+
3 rows in set (0.00 sec)


mysql> select * from userbak;
mysql> create table userbak2 select name,shell,uid from user1 limit 10;
Query OK, 10 rows affected (0.04 sec)
Records: 10  Duplicates: 0  Warnings: 0


mysql> desc userbak2;
+-------+----------+------+-----+---------+-------+
| Field | Type     | Null | Key | Default | Extra |
+-------+----------+------+-----+---------+-------+
| name  | char(30) | YES  |     | NULL    |       |
| shell | char(50) | YES  |     | NULL    |       |
| uid   | int(11)  | YES  |     | NULL    |       |
+-------+----------+------+-----+---------+-------+
3 rows in set (0.00 sec)


mysql> select * from userbak2;
+----------+----------------+------+
| name     | shell          | uid  |
+----------+----------------+------+
| root     | /bin/bash      |    0 |
| bin      | /sbin/nologin  |    1 |
| daemon   | /sbin/nologin  |    2 |
| adm      | /sbin/nologin  |    3 |
| lp       | /sbin/nologin  |    4 |
| sync     | /bin/sync      |    5 |
| shutdown | /sbin/shutdown |    6 |
| halt     | /sbin/halt     |    7 |
| mail     | /sbin/nologin  |    8 |
| operator | /sbin/nologin  |   11 |
+----------+----------------+------+
10 rows in set (0.00 sec)


mysql> desc userbak;
+----------+-----------+------+-----+---------+-------+
| Field    | Type      | Null | Key | Default | Extra |
+----------+-----------+------+-----+---------+-------+
| id       | int(2)    | NO   |     | 0       |       |
| name     | char(30)  | YES  |     | NULL    |       |
| password | char(1)   | YES  |     | NULL    |       |
| uid      | int(11)   | YES  |     | NULL    |       |
| gid      | int(11)   | YES  |     | NULL    |       |
| comment  | char(100) | YES  |     | NULL    |       |
| homefir  | char(150) | YES  |     | NULL    |       |
| shell    | char(50)  | YES  |     | NULL    |       |
+----------+-----------+------+-----+---------+-------+
8 rows in set (0.00 sec)
二、多表查询(连接查询)
-将2个或2个以上的表 按某个条件连接起来,从中选择需要的数据
-当多个表存在相同意义的字段(字段名可以不同)时,可以通过该字段连接多个表
mysql> select * from t1;
+--------+------+---------------+
| name   | uid  | shell         |
+--------+------+---------------+
| root   |    0 | /bin/bash     |
| lili   |    1 | /sbin/nologin |
| daemon |    2 | /sbin/nologin |
+--------+------+---------------+
3 rows in set (0.00 sec)


mysql> select * from t2;
+--------+------+---------+
| name   | uid  | homefir |
+--------+------+---------+
| root   |    0 | /root   |
| lili   |    1 | /root   |
| daemon |    2 | /root   |
| adm    |    3 | /root   |
| lp     |    4 | /root   |
+--------+------+---------+
5 rows in set (0.00 sec)


mysql> select * from t2,t1;   ------笛卡尔集合
+--------+------+---------+--------+------+---------------+
| name   | uid  | homefir | name   | uid  | shell         |
+--------+------+---------+--------+------+---------------+
| root   |    0 | /root   | root   |    0 | /bin/bash     |
| root   |    0 | /root   | lili   |    1 | /sbin/nologin |
| root   |    0 | /root   | daemon |    2 | /sbin/nologin |
| lili   |    1 | /root   | root   |    0 | /bin/bash     |
| lili   |    1 | /root   | lili   |    1 | /sbin/nologin |
| lili   |    1 | /root   | daemon |    2 | /sbin/nologin |
| daemon |    2 | /root   | root   |    0 | /bin/bash     |
| daemon |    2 | /root   | lili   |    1 | /sbin/nologin |
| daemon |    2 | /root   | daemon |    2 | /sbin/nologin |
| adm    |    3 | /root   | root   |    0 | /bin/bash     |
| adm    |    3 | /root   | lili   |    1 | /sbin/nologin |
| adm    |    3 | /root   | daemon |    2 | /sbin/nologin |
| lp     |    4 | /root   | root   |    0 | /bin/bash     |
| lp     |    4 | /root   | lili   |    1 | /sbin/nologin |
| lp     |    4 | /root   | daemon |    2 | /sbin/nologin |
+--------+------+---------+--------+------+---------------+
15 rows in set (0.00 sec)


mysql> select t2.*,t1.shell from t2,t1;
+--------+------+---------+---------------+
| name   | uid  | homefir | shell         |
+--------+------+---------+---------------+
| root   |    0 | /root   | /bin/bash     |
| root   |    0 | /root   | /sbin/nologin |
| root   |    0 | /root   | /sbin/nologin |
| lili   |    1 | /root   | /bin/bash     |
| lili   |    1 | /root   | /sbin/nologin |
| lili   |    1 | /root   | /sbin/nologin |
| daemon |    2 | /root   | /bin/bash     |
| daemon |    2 | /root   | /sbin/nologin |
| daemon |    2 | /root   | /sbin/nologin |
| adm    |    3 | /root   | /bin/bash     |
| adm    |    3 | /root   | /sbin/nologin |
| adm    |    3 | /root   | /sbin/nologin |
| lp     |    4 | /root   | /bin/bash     |
| lp     |    4 | /root   | /sbin/nologin |
| lp     |    4 | /root   | /sbin/nologin |
+--------+------+---------+---------------+
15 rows in set (0.00 sec)


mysql> select t2.*,t1.shell from t2,t1;
+--------+------+---------+---------------+
| name   | uid  | homefir | shell         |
+--------+------+---------+---------------+
| root   |    0 | /root   | /bin/bash     |
| root   |    0 | /root   | /sbin/nologin |
| root   |    0 | /root   | /sbin/nologin |
| lili   |    1 | /root   | /bin/bash     |
| lili   |    1 | /root   | /sbin/nologin |
| lili   |    1 | /root   | /sbin/nologin |
| daemon |    2 | /root   | /bin/bash     |
| daemon |    2 | /root   | /sbin/nologin |
| daemon |    2 | /root   | /sbin/nologin |
| adm    |    3 | /root   | /bin/bash     |
| adm    |    3 | /root   | /sbin/nologin |
| adm    |    3 | /root   | /sbin/nologin |
| lp     |    4 | /root   | /bin/bash     |
| lp     |    4 | /root   | /sbin/nologin |
| lp     |    4 | /root   | /sbin/nologin |
+--------+------+---------+---------------+
15 rows in set (0.01 sec)


mysql> select t2.*,t1.shell from t2,t1 where t1.uid=t2.uid;
+--------+------+---------+---------------+
| name   | uid  | homefir | shell         |
+--------+------+---------+---------------+
| root   |    0 | /root   | /bin/bash     |
| lili   |    1 | /root   | /sbin/nologin |
| daemon |    2 | /root   | /sbin/nologin |
+--------+------+---------+---------------+
3 rows in set (0.00 sec)


sql查询 where条件 (sql查询)


select name from jfb
where
name in(select name from bjb where address="bj");


select name,age from user1 where age > (select avg(age) from user1);




select name from jfb
where
name in(select name from bjb where address="bj");




select name from db1.user1
where
name in(select name from db4.t1 where shell="/sbin/nologin");
left join 左连接  条件成立时以左表为主显示查询结果
right join 右连接  条件成立时以右表为主显示查询结果
mysql> select *from t3;
+--------+------+---------------+
| name   | uid  | shell         |
+--------+------+---------------+
| root   |    0 | /bin/bash     |
| bin    |    1 | /sbin/nologin |
| daemon |    2 | /sbin/nologin |
+--------+------+---------------+
3 rows in set (0.00 sec)


mysql> select *from t4;
+--------+------+---------------+
| name   | uid  | shell         |
+--------+------+---------------+
| root   |    0 | /bin/bash     |
| bin    |    1 | /sbin/nologin |
| daemon |    2 | /sbin/nologin |
| adm    |    3 | /sbin/nologin |
| lp     |    4 | /sbin/nologin |
+--------+------+---------------+
5 rows in set (0.00 sec)


mysql> select * from t3 left join t4 on t3.uid=t4.uid;
+--------+------+---------------+--------+------+---------------+
| name   | uid  | shell         | name   | uid  | shell         |
+--------+------+---------------+--------+------+---------------+
| root   |    0 | /bin/bash     | root   |    0 | /bin/bash     |
| bin    |    1 | /sbin/nologin | bin    |    1 | /sbin/nologin |
| daemon |    2 | /sbin/nologin | daemon |    2 | /sbin/nologin |
+--------+------+---------------+--------+------+---------------+
3 rows in set (0.00 sec)


mysql> select * from t3 right join t4 on t3.uid=t4.uid;
+--------+------+---------------+--------+------+---------------+
| name   | uid  | shell         | name   | uid  | shell         |
+--------+------+---------------+--------+------+---------------+
| root   |    0 | /bin/bash     | root   |    0 | /bin/bash     |
| bin    |    1 | /sbin/nologin | bin    |    1 | /sbin/nologin |
| daemon |    2 | /sbin/nologin | daemon |    2 | /sbin/nologin |
| NULL   | NULL | NULL          | adm    |    3 | /sbin/nologin |
| NULL   | NULL | NULL          | lp     |    4 | /sbin/nologin |
+--------+------+---------------+--------+------+---------------+
5 rows in set (0.00 sec)


安装图形管理工具-phpmyadmin
命令的好处 可以跨平台,但是前提时必须会用
常见的MYSQL管理工具
mysql 命令行 跨平台 MySQL官方bundle包自带
MySQL Workbench 图形 跨平台 MYSQL官方提供
MYSQL-Front 图形 Windows 开源但是需要LAMP环境
Navicat 图形 Window 专业且功能强大但是商业板的
[root@localhost ~]# cd /root
[root@localhost ~]# ls
anaconda-ks.cfg                          repolist  视频  下载
initial-setup-ks.cfg                     公共      图片  音乐
phpMyAdmin-2.11.11-all-languages.tar.gz  模板      文档  桌面
[root@localhost ~]# rpm -q httpd php php-mydql
未安装软件包 httpd 
未安装软件包 php 
未安装软件包 php-mydql 
[root@localhost ~]# yum repolist 
已加载插件:langpacks, product-id, search-disabled-repos, subscription-manager
This system is not registered with an entitlement server. You can use subscription-manager to register.
源标识                         源名称                                           状态
!var_www_html_rhel7            added from: http:/var/www/html/rhel7             9,591
repolist: 9,591
[root@localhost ~]# yum install httpd php php-mysql
[root@localhost ~]# systemctl start httpd
[root@localhost ~]# systemctl enable httpd
Created symlink from /etc/systemd/system/multi-user.target.wants/httpd.service to /usr/lib/systemd/system/httpd.service.
[root@localhost ~]# cd /root
[root@localhost ~]# ls
anaconda-ks.cfg                          repolist  视频  下载
initial-setup-ks.cfg                     公共      图片  音乐
phpMyAdmin-2.11.11-all-languages.tar.gz  模板      文档  桌面
[root@localhost ~]# tar -zxf phpMyAdmin-2.11.11-all-languages.tar.gz 
[root@localhost ~]# ls
anaconda-ks.cfg                          repolist  图片  桌面
initial-setup-ks.cfg                     公共      文档
phpMyAdmin-2.11.11-all-languages         模板      下载
phpMyAdmin-2.11.11-all-languages.tar.gz  视频      音乐
[root@localhost ~]# mv phpMyAdmin-2.11.11-all-languages /var/www/html/phpmyadmin
[root@localhost /]# cd /var/www/html/phpmyadmin/
[root@localhost phpmyadmin]# ls
browse_foreigners.php  LICENSE                server_processlist.php
calendar.php           license.php            server_sql.php
ChangeLog              main.php               server_status.php
changelog.php          navigation.php         server_variables.php
chk_rel.php            pdf_pages.php          show_config_errors.php
config.sample.inc.php  pdf_schema.php         sql.php
contrib                phpinfo.php            tbl_addfield.php
CREDITS                phpmyadmin.css.php     tbl_alter.php
db_create.php          pmd                    tbl_change.php
db_datadict.php        pmd_common.php         tbl_create.php
db_export.php          pmd_display_field.php  tbl_export.php
db_import.php          pmd_general.php        tbl_import.php
db_operations.php      pmd_help.php           tbl_indexes.php
db_printview.php       pmd_pdf.php            tbl_move_copy.php
db_qbe.php             pmd_relation_new.php   tbl_operations.php
db_search.php          pmd_relation_upd.php   tbl_printview.php
db_sql.php             pmd_save_pos.php       tbl_relation.php
db_structure.php       print.css              tbl_replace.php
docs.css               querywindow.php        tbl_row_action.php
Documentation.html     README                 tbl_select.php
Documentation.txt      readme.php             tbl_sql.php
error.php              RELEASE-DATE-2.11.11   tbl_structure.php
export.php             scripts                themes
favicon.ico            server_binlog.php      themes.php
import.php             server_collations.php  TODO
index.php              server_databases.php   transformation_overview.php
INSTALL                server_engines.php     transformation_wrapper.php
js                     server_export.php      translators.html
lang                   server_import.php      user_password.php
libraries              server_privileges.php  view_create.php
[root@localhost html]# ls phpmyadmin/index.*
phpmyadmin/index.php
[root@localhost html]# firefox  http://192.168.4.50/phpmyadmin
Error: GDK_BACKEND does not match available displays
[root@localhost html]# cd phpmyadmin/
[root@localhost phpmyadmin]# cp config.sample.inc.php  config.inc.php
[root@localhost phpmyadmin]# vim config.inc.php 
[root@localhost phpmyadmin]# vim config.inc.php
 17行 $cfg['blowfish_secret'] = 'plj123'; /* YOU MUST FILL IN THIS FOR COOKIE AUTH!
37行 $cfg['Servers'][$i]['host'] = 'localhost';




下午课程
数据库管理员root用户本机登录密码的修改和恢复
修改密码
[root@50 ~]# mysqladmin -hlocalhost -uroot -p password "zhuhaiyan"
Enter password: 
mysqladmin: [Warning] Using a password on the command line interface can be insecure.
Warning: Since password will be sent to server in plain text, use ssl connection to ensure password safety.
恢复密码
[root@50 ~]# systemctl stop mysqld.service 
[root@50 ~]# vim /etc/my.cnf
[mysqld]
skip-grant-tables
#validate_password_policy=0
#validate_password_length=6
[root@50 ~]# systemctl start mysqld
[root@50 ~]# mysql
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 3
Server version: 5.7.17 MySQL Community Server (GPL)


Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved.


Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.


Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.


mysql> desc mysql.user




mysql> select host,user,authentication_string from mysql.user;
+-----------+-----------+-------------------------------------------+
| host      | user      | authentication_string                     |
+-----------+-----------+-------------------------------------------+
| localhost | root      | 123456                                    |
| localhost | mysql.sys | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE |
+-----------+-----------+-------------------------------------------+
2 rows in set (0.00 sec)


mysql> update mysql.user
    -> set
    -> authentication_string=password("tarena")
    -> where 
    -> user="root" and host="localhost";
Query OK, 1 row affected, 1 warning (0.00 sec)
Rows matched: 1  Changed: 1  Warnings: 1


mysql> flush privilges;   -----修改内部的表时候,使得其生效时一定要执行
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'privilges' at line 1
mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)


mysql> quit
Bye
[root@50 ~]# vim /etc/my.cnf
[mysqld]
#skip-grant-tables
validate_password_policy=0
validate_password_length=6
[root@50 ~]# systemctl start mysqld
[root@50 ~]# mysql -uroot -ptarena
mysql: [Warning] Using a password on the command line interface can be insecure.
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 4
Server version: 5.7.17 MySQL Community Server (GPL)


Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved.


Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.


Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.


mysql> 


用户授权
授权:就是在数据库服务器添加可以连接的用户(默认只有数据库管理原在本机能够连接数据库服务)
默认只有数据库管理员在本地登录才有授权权限
grant 权限列表 on 库名 to 用户名@“客户端地址” identified by "密码" [with grant option];


相关命令
select user();
mysql> select @@hostname ---当前数据库的主机名
    -> ;
+------------+
| @@hostname |
+------------+
| 50         |
+------------+
1 row in set (0.00 sec)


mysql> select user();  ------当前数据库的用户
+----------------+
| user()         |
+----------------+
| root@localhost |
+----------------+
1 row in set (0.00 sec)


mysql> show grants;   -----当前数据库的权限
+---------------------------------------------------------------------+
| Grants for root@localhost                                           |
+---------------------------------------------------------------------+
| GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' WITH GRANT OPTION |
| GRANT PROXY ON ''@'' TO 'root'@'localhost' WITH GRANT OPTION        |
+---------------------------------------------------------------------+
2 rows in set (0.00 sec)


mysql> grant all on *.* to root@"192.168.4.254" identified by "123456" with grant option;
Query OK, 0 rows affected, 1 warning (0.00 sec)


192.168.4.154的机子上必须有mariadb
可以用以下命令验证
[root@room9pc01 桌面]# yum install mariadb
[root@room9pc01 桌面]# which mysql
/usr/bin/mysql
[root@room9pc01 桌面]# mysql -h192.168.4.1 -uroot -p123456






mysql> grant select,insert,update(name,uid)on db3.user1    ----% 网络访问的都可以
    -> to webuuser@"%" identified by "123456";   
Query OK, 0 rows affected, 1 warning (0.01 sec)
[root@room9pc01 桌面]# mysql -h192.168.4.1 -uwebuser -p123456


mysql> grant usage on *.* to yaya@"%" identified by "123456";
Query OK, 0 rows affected, 1 warning (0.00 sec)    ---只赋予了yaya用户连接的权限


用户权限撤销













































































































































































































































































猜你喜欢

转载自blog.csdn.net/zhydream77/article/details/80855579