分类目录数据库

mysql处理ip地址的2个方法:inet_aton 与 inet_ntoa

mysql提供了两个方法来处理ip地址:
inet_aton 把ip转为无符号整型(4-8位)
inet_ntoa 把整型的ip转为电地址

插入数据前,先用inet_aton把ip地址转为整型,可以节省空间,因为char(15) 占16字节。
显示数据时,使用inet_ntoa把整型的ip地址转为电地址显示即可。

例子:

CREATE TABLE user (
id int(11) unsigned NOT NULL AUTO_INCREMENT,
name varchar(100) NOT NULL,
ip int(10) unsigned NOT NULL,
PRIMARY KEY (id)
) ENGINE=InnoDB;

插入几条数据

INSERT INTO user (id, name, ip) VALUES
(2, ‘Abby’, inet_aton(‘192.168.1.1’)),
(3, ‘Daisy’, inet_aton(‘172.16.11.66’)),
(4, ‘Christine’, inet_aton(‘220.117.131.12’));

查询显示

mysql> select * from user;
+—-+———–+————+
| id | name | ip |
+—-+———–+————+
| 2 | Abby | 3232235777 |
| 3 | Daisy | 2886732610 |
| 4 | Christine | 3698688780 |
+—-+———–+————+

利用inet_ntoa查询

mysql> select id,name,inet_ntoa(ip) as ip from user;
+—-+———–+—————-+
| id | name | ip |
+—-+———–+—————-+
| 2 | Abby | 192.168.1.1 |
| 3 | Daisy | 172.16.11.66 |
| 4 | Christine | 220.117.131.12 |
+—-+———–+—————-+

Mysql修改root账户密码的方法

服务器环境:Windows10 + mysql5.0.15
mysql的安装路径:D:\webServ\mysql-5.0.15-win32

一、在忘记了root账户密码情况下,重置root密码

以管理员身份打开cmd窗口,进入到D:\webServ\mysql-5.0.15-win32\bin目录下,输入“net stop mysql”按回车,关闭mysql服务:

Mysql修改root账户密码的方法

输入“mysqld --skip-grant-tables”,开启跳过密码验证登录的MySQL服务:

Mysql修改root账户密码的方法

上面的cmd窗口已经无法响应输入,关掉它我们再重新打开一个cmd窗口,进入到D:\webServ\mysql-5.0.15-win32\bin目录下,输入“mysql”:

Mysql修改root账户密码的方法

输入“use mysql”:

Mysql修改root账户密码的方法

输入“update user set password=password('1234') where user='root' and host='localhost';”,别忘了最后的分号:

Mysql修改root账户密码的方法

输入“flush privileges;”刷新权限:

Mysql修改root账户密码的方法

输入“quit”退出mysql:

Mysql修改root账户密码的方法

二、已知root账户密码的情况下,重置root密码

方法1:用mysql
打开cmd窗口,进入到D:\webServ\mysql-5.0.15-win32\bin目录下:

Mysql修改root账户密码的方法

输入“mysql -uroot -p1234”,登录MySQL:

Mysql修改root账户密码的方法

输入“set password for root@localhost = password('123');”:

Mysql修改root账户密码的方法

虽然提示“Query OK, 0 rows affected …”,但这时用Navicat连接测试,发现密码已经更改了。

方法2:用mysql
打开cmd窗口,进入到D:\webServ\mysql-5.0.15-win32\bin目录下:

Mysql修改root账户密码的方法

输入“mysql -uroot -p123”,登录MySQL:

Mysql修改root账户密码的方法

输入“use mysql”:

Mysql修改root账户密码的方法

输入“update user set password=password('1234') where user='root' and host='localhost';”:

Mysql修改root账户密码的方法

输入“flush privileges;”:

Mysql修改root账户密码的方法

方法3:用mysqladmin
打开cmd窗口,进入到D:\webServ\mysql-5.0.15-win32\bin目录下:

Mysql修改root账户密码的方法

输入“mysqladmin -uroot -p1234 password 123”:

Mysql修改root账户密码的方法

说明:以上操作中,仅在关闭mysql服务时需要以管理员身份打开cmd窗口。

命令行下复制、备份远程数据库

在Win10下如果安装了Mysql,那么我们可以把远程Mysql服务器上的数据库备份到本地,前提是远程Mysql服务器允许远程接入。

假设远程Mysql服务器的访问地址是201.100.0.99,数据库名为mysqlDb1,Mysql账户名为user1,密码为password1;本地Mysql数据库名为mysqlDb2,Mysql账户名为user2,密码为password2,运行cmd,输入如下命令:

mysqldump -h201.100.0.99 mysqlDb1 -uuser1 -ppassword1 –add-drop-table | mysql mysqlDb2 -uuser2 -ppassword2

如果出现“’mysqldump’不是内部或外部命令,也不是可运行的程序”,说明Mysql安装不正确或者用户的环境变量设置出了问题,重装安装Mysql就可以了。

如果出现“mysqldump: [ERROR] unknown option ‘–no-beep’”,可以百度下找到解决办法:第一种删除my.ini [client]下的 no-beep 参数,第二种方法在mysqldump后加–no-defaults参数。在这里我们采用第二种方法,将命令行语句改成如下即可:

mysqldump –no-defaults -h201.100.0.99 mysqlDb1 -uuser1 -ppassword1 –add-drop-table | mysql mysqlDb2 -uuser2 -ppassword2

用上面的命令可以将远程服务器的Mysql数据库复制到了本地,我们也可以直接输出成sql文本文件,语句如下:

mysqldump –no-defaults -h201.100.0.99 mysqlDb1 -uuser1 -ppassword1 –add-drop-table >d:\mysqlDb2.sql

当然,在Linux下也可以做同样的事情,这里就不赘述了。

一句SQL实现MYSQL的递归查询

众所周知,目前的mysql版本中并不支持直接的递归查询,但是通过递归到迭代转化的思路,还是可以在一句SQL内实现树的递归查询的。这个得益于Mysql允许在SQL语句内使用@变量。以下是示例代码。

创建表格

插入测试数据

查询语句

最后的结果如下:

出处:https://www.itdaan.com/blog/2015/07/31/62738242d654aff87473e8f343c02885.html