blog.zhuohua.store's Archiver

admin 发表于 2019-12-7 15:33

使用SQLyog远程管理MySQL

笺注:这是在 [url=http://blog.zhuohua.store/viewthread.php?tid=79&extra=page%3D1]LNMP一键安装包(lnmp_CentOS6.9)[/url] 的基础上进行的。


MySQL的版本信息:
[root@localhost ~]# mysql -V
mysql  Ver 14.14 Distrib [color=Purple]5.5.48[/color], for Linux (x86_64) using readline 5.1
[root@localhost ~]#
[root@localhost ~]# mysql -V |awk '{print $5}'
[color=Purple]5.5.48,[/color]
[root@localhost ~]#
[root@localhost ~]# mysql -V |awk '{print $5}' |awk -F, '{print $1}'
[color=Purple]5.5.48[/color]
[root@localhost ~]#



检测MySQL的运行状态:
[root@localhost ~]# service mysql stop
Shutting down MySQL. SUCCESS!
[root@localhost ~]#

[root@localhost ~]# ps -ef |grep [color=Blue]mysql[/color] |grep -v grep
[root@localhost ~]#
[root@localhost ~]# echo $?
[color=Purple]1[/color]

[root@localhost ~]# ps aux |grep [color=Blue]mysql[/color] |grep -v grep
[root@localhost ~]#
[root@localhost ~]# echo $?
[color=Purple]1[/color]


[root@localhost ~]# netstat -anp | grep [color=Blue]mysql[/color]
[root@localhost ~]#
[root@localhost ~]# echo $?
[color=Purple]1[/color]

[root@localhost ~]# netstat -anp | grep [color=Blue]3306[/color]
[root@localhost ~]#
[root@localhost ~]# echo $?
[color=Purple]1[/color]



[root@localhost ~]# service mysql start
Starting MySQL.. SUCCESS!
[root@localhost ~]#

[root@localhost ~]# ps -ef |grep [color=Blue]mysql[/color] |grep -v grep
root       2711      1  0 02:39 pts/1    00:00:00 /bin/sh /usr/local/mysql/bin/mysqld_safe --datadir=/usr/local/mysql/var --pid-file=/usr/local/mysql/var/localhost.localdomain.pid
mysql      3195   2711  0 02:39 pts/1    00:00:00 /usr/local/mysql/bin/mysqld --basedir=/usr/local/mysql --datadir=/usr/local/mysql/var --plugin-dir=/usr/local/mysql/lib/plugin --user=mysql --log-error=/usr/local/mysql/var/localhost.localdomain.err --open-files-limit=65535 --pid-file=/usr/local/mysql/var/localhost.localdomain.pid --socket=/tmp/mysql.sock --port=3306
[root@localhost ~]#
[root@localhost ~]# echo $?
[color=Purple]0[/color]

[root@localhost ~]# ps aux |grep [color=Blue]mysql[/color] |grep -v grep
root       2711  0.0  0.0  11308  1516 pts/1    S    02:39   0:00 /bin/sh /usr/local/mysql/bin/mysqld_safe --datadir=/usr/local/mysql/var --pid-file=/usr/local/mysql/var/localhost.localdomain.pid
mysql      3195  0.2  2.5 465436 48700 pts/1    Sl   02:39   0:00 /usr/local/mysql/bin/mysqld --basedir=/usr/local/mysql --datadir=/usr/local/mysql/var --plugin-dir=/usr/local/mysql/lib/plugin --user=mysql --log-error=/usr/local/mysql/var/localhost.localdomain.err --open-files-limit=65535 --pid-file=/usr/local/mysql/var/localhost.localdomain.pid --socket=/tmp/mysql.sock --port=3306
[root@localhost ~]#
[root@localhost ~]# echo $?
[color=Purple]0[/color]


[root@localhost ~]# netstat -anp | grep [color=Blue]mysql[/color]
tcp        0      0 0.0.0.0:3306                0.0.0.0:*                   LISTEN      3195/mysqld         
unix  2      [ ACC ]     STREAM     LISTENING     12705  3195/mysqld         /tmp/mysql.sock
[root@localhost ~]#
[root@localhost ~]# echo $?
[color=Purple]0[/color]

[root@localhost ~]# netstat -anp | grep [color=Blue]3306[/color]
tcp        0      0 0.0.0.0:3306                0.0.0.0:*                   LISTEN      3195/mysqld         
[root@localhost ~]#
[root@localhost ~]# echo $?
[color=Purple]0[/color]



登录MySQL后,修改数据库管理员root@localhost的密码:
use mysql;
UPDATE user SET Password = password ( '[color=DarkRed]1688[/color]' ) WHERE User = 'root';
flush privileges;
[attach]19291[/attach]


服务器本地登录MySQL数据库:(使用的是数据库管理员root@localhost,密码1688)
mysql -u"root" -p"[color=DarkRed]1688[/color]"
[attach]19292[/attach]



查看数据库里有哪些库:(以下3个库是默认就有的)
show databases;
[attach]19293[/attach]


切换到库[color=Blue]mysql[/color],并列出这个库里所有的表:
mysql> [color=Blue]use mysql;[/color]
Database changed
mysql>
mysql> [color=Blue]show tables;[/color]
+---------------------------+
| Tables_in_mysql           |
+---------------------------+
| columns_priv              |
| db                        |
| event                     |
| func                      |
| general_log               |
| help_category             |
| help_keyword              |
| help_relation             |
| help_topic                |
| host                      |
| ndb_binlog_index          |
| plugin                    |
| proc                      |
| procs_priv                |
| proxies_priv              |
| servers                   |
| slow_log                  |
| tables_priv               |
| time_zone                 |
| time_zone_leap_second     |
| time_zone_name            |
| time_zone_transition      |
| time_zone_transition_type |
| [color=Purple]user[/color]                      |
+---------------------------+
24 rows in set (0.00 sec)

mysql>



查看指定表的表结构:(截图有省略)
describe [color=Blue]mysql.user[/color];
[attach]19294[/attach]

笺注:库mysql中的表user里面包含了所有数据库用户的信息。



查看所有数据库用户及其主机信息:(以下是初始状态)
select user,host from mysql.user;
[attach]19295[/attach]


查看数据库管理员root@localhost的权限:
mysql> show grants for root@localhost;
+----------------------------------------------------------------------------------------------------------------------------------------+
| Grants for root@localhost                                                                                                              |
+----------------------------------------------------------------------------------------------------------------------------------------+
| [color=Purple]GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost'[/color] IDENTIFIED BY PASSWORD '*398D8BD83BF246533D81FF0E614402C6505D0EED' WITH GRANT OPTION |
| [color=DarkRed]GRANT PROXY ON ''@'' TO 'root'@'localhost' WITH GRANT OPTION[/color]                                                                           |
+----------------------------------------------------------------------------------------------------------------------------------------+
2 rows in set (0.00 sec)

mysql>

笺注:如果站点的数据库配置文件中直接使用了数据库管理员户root@localhost,并且站点文件和数据库在同一台服务器上,就无需另外创建数据库用户、授权了。



######
######

创建一个数据库用户并授权:

授权数据库用户zhuohua@'%'(密码886),可以从任意IP进行访问,对所有的库有完全控制的权限:
mysql> grant all on *.* to zhuohua@'%' identified by '886';
Query OK, 0 rows affected (0.01 sec)


查看数据库用户zhuohua@'%'的权限:
mysql> show grants for zhuohua@'%';
+-----------------------------------------------------------------------------------------------------------------+
| Grants for zhuohua@%                                                                                            |
+-----------------------------------------------------------------------------------------------------------------+
| [color=Purple]GRANT ALL PRIVILEGES ON *.* TO 'zhuohua'@'%'[/color] IDENTIFIED BY PASSWORD '*F961C54AFEB4D281CE53D7CB8E7822890D86FFFC' |
+-----------------------------------------------------------------------------------------------------------------+
1 row in set (0.00 sec)

mysql>


再次查看所有数据库用户及其主机信息:
[attach]19296[/attach]



######

编辑防火墙规则:(打开TCP 3306端口)
[root@localhost ~]# vi /etc/sysconfig/iptables
修改:
-A INPUT -p tcp -m tcp --dport [color=DarkRed]3306[/color] -j [color=Blue]ACCEPT[/color]
[attach]19297[/attach]


重启iptable服务:
[root@localhost ~]# service iptables restart
iptables:将链设置为政策 ACCEPT:filter [确定]
iptables:清除防火墙规则:[确定]
iptables:正在卸载模块:[确定]
iptables:应用防火墙规则:[确定]


查看防火墙的filter表的规则:(截图有省略)
iptables -nL -t filter --line
[attach]19298[/attach]













############
############

SQLyog是一个图形化管理MySQL/MariaDB数据库的工具。

下载SQLyog:[url]https://pan.baidu.com/s/16Hb9sUgSt5Q8QPaquYNw8w[/url]

Windows客户端使用SQLyog,可以远程访问MySQL/MariaDB数据库:
[attach]19299[/attach]


运行 SQLyogEnt.exe ,新建一个连接:
[attach]19300[/attach]


[attach]19301[/attach]


MySQL服务器的IP地址 [color=Blue]192.168.168.130[/color]
数据库用户名 [color=Blue]zhuohua[/color]
密码 [color=Blue]886[/color]
端口 [color=Blue]3306[/color]
[attach]19302[/attach]


SQLyog的主界面:
[attach]19303[/attach]


使用SQLyog创建库:(快捷键 [color=Blue]Ctrl+D[/color] )
[attach]19304[/attach]


[attach]19305[/attach]


自定义的库data1创建成功:
[attach]19306[/attach]


在MySQL服务器本地查看库data1的字符集:
[root@localhost ~]# mysql -u"root" -p"1688" -e "[color=Blue]show create database data1;[/color]"
+----------+----------------------------------------------------------------+
| Database | Create Database                                                |
+----------+----------------------------------------------------------------+
| data1    | [color=Purple]CREATE DATABASE `data1` /*!40100 DEFAULT CHARACTER SET utf8 */[/color] |
+----------+----------------------------------------------------------------+
[root@localhost ~]#

注释:库data1的字符集为 [color=Blue]utf8_general_ci[/color]





使用SQLyog创建表:
[attach]19307[/attach]


设置好字段后,点击左下角的“创建表”:
[attach]19308[/attach]


输入自定义表名:
[attach]19309[/attach]


[attach]19310[/attach]



使用SQLyog查看库data1中的表table1的表结构:
[attach]19311[/attach]


创建表后,还可以查看表的字段信息、索引信息、DDL信息:
[attach]19312[/attach]

[attach]19313[/attach]

DDL信息:
CREATE TABLE `table1` (
   `id` int(11) NOT NULL AUTO_INCREMENT,
   `name` varchar(30) NOT NULL,
   `age` tinyint(4) DEFAULT NULL,
   `math` float DEFAULT NULL,
   `english` decimal(50,2) DEFAULT NULL,
   `adress1` text,
   `adress2` mediumtext,
   `adress3` longtext,
   `shijian` datetime DEFAULT NULL,
   PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8

可以使用代码创建表:
[attach]19314[/attach]


在MySQL服务器本地查看库data1中的表table1的表结构:
[root@localhost ~]# mysql -u"root" -p"1688" -e "[color=Blue]desc data1.table1;[/color]"
[attach]19315[/attach]





使用SQLyog插入记录:(选择表名后,选择粘贴SQL语句)
[attach]19316[/attach]

代码:(字段id为主键、标识符列,会自动增长,不用写)
INSERT INTO data1.table1
        (
        NAME,
        age,
        math,
        english,
        adress1,
        adress2,
        adress3,
        shijian
        )
        VALUES
        (
        [color=Blue]'zhuohua',
        18,
        60,
        80.5,
        '中国',
        '广东省',
        '佛山市',
        '2019-12-2 15:33:5'[/color]
        );

[attach]19317[/attach]


在MySQL服务器本地查看库data1中的表table1的表数据:
[root@localhost ~]# mysql -u"root" -p"1688" -e "[color=Blue]use data1;select * from table1;[/color]"
[attach]19318[/attach]





######
######

在MySQL服务器本地修改数据库用户zhuohua@'%'的密码为1234:
[root@localhost ~]# mysql -u"root" -p"1688" -e "update mysql.user set password=password('[color=DarkRed]1234[/color]') where user='[color=Blue]zhuohua[/color]' and host='[color=Blue]%[/color]';flush privileges;"
[root@localhost ~]#


[root@localhost ~]# mysql -u"root" -p"1688" -e "show grants for zhuohua@'%';"
+-----------------------------------------------------------------------------------------------------------------+
| Grants for zhuohua@%                                                                                            |
+-----------------------------------------------------------------------------------------------------------------+
| GRANT ALL PRIVILEGES ON *.* TO 'zhuohua'@'%' IDENTIFIED BY PASSWORD '[color=Purple]*A4B6157319038724E3560894F7F932C8886EBFCF[/color]' |
+-----------------------------------------------------------------------------------------------------------------+
[root@localhost ~]#

注释:密码是加密了的。





######
######

在MySQL服务器本地撤销数据库用户zhuohua@'%'对所有的库有完全控制的权限:
[root@localhost ~]# mysql -u"root" -p"1688" -e "revoke all on *.* from zhuohua@'%';flush privileges;"
[root@localhost ~]#


再次查看数据库用户zhuohua@'%' 的权限:
[root@localhost ~]# mysql -u"root" -p"1688" -e "show grants for zhuohua@'%';"
+--------------------------------------------------------------------------------------------------------+
| Grants for zhuohua@%                                                                                   |
+--------------------------------------------------------------------------------------------------------+
| [color=Purple]GRANT USAGE ON *.* TO 'zhuohua'@'%'[/color] IDENTIFIED BY PASSWORD '*A4B6157319038724E3560894F7F932C8886EBFCF' |
+--------------------------------------------------------------------------------------------------------+
[root@localhost ~]#


此时数据库用户 zhuohua@'%' 可以登录SQLyog,但实际上已经没有任何权限了:
[attach]19319[/attach]





######

重新授权数据库用户zhuohua@'%'(密码1234),可以从任意IP进行访问,只对库data1有完全控制的权限:
[root@localhost ~]# mysql -u"root" -p"1688" -e "grant all on [color=DarkRed]data1[/color].* to zhuohua@'%' identified by '1234';"
[root@localhost ~]#


重新查看数据库用户zhuohua@'%'的权限:
[root@localhost ~]# mysql -u"root" -p"1688" -e "show grants for zhuohua@'%';"
+--------------------------------------------------------------------------------------------------------+
| Grants for zhuohua@%                                                                                   |
+--------------------------------------------------------------------------------------------------------+
| GRANT USAGE ON *.* TO 'zhuohua'@'%' IDENTIFIED BY PASSWORD '*A4B6157319038724E3560894F7F932C8886EBFCF' |
| [color=Purple]GRANT ALL PRIVILEGES ON `data1`.* TO 'zhuohua'@'%'  [/color]                                                   |
+--------------------------------------------------------------------------------------------------------+
[root@localhost ~]#


此时数据库用户 zhuohua@'%' 可以登录SQLyog,只对库data1有完全控制的权限:
[attach]19320[/attach]





######

撤销数据库用户zhuohua@'%'对库data1的完全控制权限:
[root@localhost ~]# mysql -u"root" -p"1688" -e "revoke all on [color=DarkRed]data1[/color].* from zhuohua@'%';flush privileges;"
[root@localhost ~]#


重新查看数据库用户zhuohua@'%'的权限:
[root@localhost ~]# mysql -u"root" -p"1688" -e "show grants for zhuohua@'%';"
+--------------------------------------------------------------------------------------------------------+
| Grants for zhuohua@%                                                                                   |
+--------------------------------------------------------------------------------------------------------+
| GRANT USAGE ON *.* TO 'zhuohua'@'%' IDENTIFIED BY PASSWORD '*A4B6157319038724E3560894F7F932C8886EBFCF' |
+--------------------------------------------------------------------------------------------------------+
[root@localhost ~]#

笺注:撤销数据库用户权限的方式,要匹配授权时的方式。





######

删除数据库用户zhuohua@'%':
[root@localhost ~]# mysql -u"root" -p"1688" -e "drop user zhuohua@'%';flush privileges;"
[root@localhost ~]#

数据库用户被删除后,再查询其权限,会有如下显示:
[root@localhost ~]# mysql -u"root" -p"1688" -e "show grants for zhuohua@'%';"
[color=Red]ERROR 1141 (42000) at line 1: There is no such grant defined for user 'zhuohua' on host '%'[/color]
[root@localhost ~]#


重新查看所有数据库用户及其主机信息:
[root@localhost ~]# mysql -u"root" -p"1688" -e "select user,host from mysql.user;"
[attach]19321[/attach]

       



相关文章:
[url=http://blog.zhuohua.store/viewthread.php?tid=231&page=1&extra=#pid234]使用Navicat远程管理MySQL[/url]
[url=http://blog.zhuohua.store/viewthread.php?tid=125&page=1&extra=#pid126]Windows2012R2_安装MySQL5.5[/url]

[url=http://blog.zhuohua.store/viewthread.php?tid=354&page=1&extra=#pid431]Windows下MySQL的备份和还原[/url]
[url=http://blog.zhuohua.store/viewthread.php?tid=238&page=1&extra=#pid241]Linux下MySQL的备份和还原[/url]

[url=http://blog.zhuohua.store/viewthread.php?tid=239&page=1&extra=#pid242]MySQL的SQL语句[/url]
[url=http://blog.zhuohua.store/viewthread.php?tid=397&page=1&extra=#pid825]MySQL的最大连接数/最大可打开表数/最大可打开文件数[/url]
[url=http://blog.zhuohua.store/viewthread.php?tid=233&page=1&extra=#pid236]重置MySQL5.5/5.6/5.7的用户密码[/url]

[url=http://blog.zhuohua.store/viewthread.php?tid=333&page=1&extra=#pid408]Zabbix自定义监控Linux下的MySQL[/url]
[url=http://blog.zhuohua.store/viewthread.php?tid=523&page=1&extra=#pid951]Zabbix5.0.12_使用模板监控MySQL主从同步状态[/url]

[url=http://blog.zhuohua.store/viewthread.php?tid=532&page=1&extra=#pid960]CentOS8_在Docker中安装MySQL[/url]
[url=http://blog.zhuohua.store/viewthread.php?tid=544&page=1&extra=#pid972]CentOS8_在Docker中安装Nagios[/url]

[url=http://blog.zhuohua.store/viewthread.php?tid=421&page=1&extra=#pid849]CentOS8_Mycat实现MySQL的读写分离[/url]
[url=http://blog.zhuohua.store/viewthread.php?tid=169&extra=page%3D1]CentOS6_iptables[/url]

页: [1]

Powered by Discuz! Archiver 7.2  © 2001-2009 Comsenz Inc.