上午的课程
多表查询安装图形管理工具-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用户连接的权限
用户权限撤销
多表查询安装图形管理工具-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用户连接的权限
用户权限撤销