follow大神教程——实践java爬虫之五

虽然本电脑配置还可以,但我总有点脑袋抽筋,不想多装软件拖慢电脑速度。

和数据库相关的本机已有WampServer和navicat(现在不搞php,wamp可以卸载了,navicat挺好用的,觉得太大的话可以试试小工具SQL-Front),现如今需要搞Java的mysql使用,便不得不装mysql了。

不知什么时候下载的mysql安装包有30+M,现在官方版的得200M吧http://dev.mysql.com/downloads/mysql;

小安装包安装过程很顺利,确定按钮没有显示出配置对话框,cd到bin目录下也完全用不了,卧槽,这什么软件!!

装mysql官方绿色版算了

下载得到mysql-noinstall-5.1.57-win32.zip(115M,某网盘下得),解压

最常用子目录:

bin 包含mysql的启动、停止等各种操作命令文件;

data数据库存放目录;

Docs包含了mysql的文档;

5个ini文件分别表示不同级别的mysql配置文件;

 

1. 配置免安装版MySQL

http://hi.baidu.com/lomgzhu/item/a7c976f126e802713c198b6f

 

 

1、下载mysql(免安装版)

http://dev.mysql.com/get/Downloads/MySQL-5.6/mysql-5.6.14-win32.zip

减压到一个指定目录下。例如:E:\Program Files (x86)\mysql-5.6.14

2、配置my.ini文件

my-small.ini、my-huge.ini或者default.ini修改为my.ini(我改的my-small.ini)

修改安装目录和db位置以及编码、端口等

[mysqld]

# 目录文件如果不加引号,路径中就不能有空格

basedir = "E:/Program Files (x86)/mysql-5.6.14/"

datadir = "E:/Program Files (x86)/mysql-5.6.14/data/"

port = 3306

设置默认编码格式放到[mysql]、[mysqld]或者[client]下针对的域不同(其实这些可以进入mysql后设置)

[mysqld]组下面添加,设置服务器端编码

{!如果写成default-character-set = utf8会报错,see MySQL基础配置之mysql的默认字符编码的设置(my.ini设置字符编码)}

character-set-server=utf8

 [client]组下面添加,设置客户端编码  

default-character-set = utf8

3、配置服务

管理员身份执行注册服务(这里如果没有配置环境变量的话,需要进入到mysql的bin目录下执行;环境变量配置在path下增加E:\Program Files (x86)\mysql-5.6.14\bin就行)

mysqld --install mysql-5.6.14 --defaults-file="E:\Program Files (x86)\mysql-5.6.14\my.ini"

启动服务

net start mysql-5.6.14

命令行登录

bin\mysql -u root -p

停止服务

net stop mysql-5.6.14 【我没有将mysql目录添加到path中,但在cmd下也可直接使用net start/stop mysql 真不错】

删除服务

bin\mysqld --remove mysql-5.6.14

启动服务不通过注册

bin\mysqld --console
【略显鸡肋,运行之后cmd没法用了,关闭mysql服务的方法是关闭cmd窗口】

停止服务不通过注册服务

bin\mysqladmin -u root shutdown

 

 

mysql --console 注意console前面是两个“-”,就因为这个我还以为前面装的mysql没用呢,应该是这里搞错了;

下图中配置mysql的命令时,也要是两个“-”;

 

follow大神教程——实践java爬虫之五

图 1 通过注册启动服务

follow大神教程——实践java爬虫之五

图 2 不通过注册启动服务

2. 可能出现的错误

如果在“通过注册启动服务”的过程中出现如下错误:

C:\Windows\system32>net start mysql

mysql 服务正在启动 ...

mysql 服务无法启动。


系统出错。


发生系统错误 1067。


进程意外终止。

这是因为Windows防火墙阻拦,用“不通过注册启动服务”的方法,会弹出对话框,点击允许通过防火墙即可。

接下来就可以用“通过注册启动服务”的方法了。

3. MySQL推荐教程系列

①mysql命令大全(http://c.biancheng.net/cpp/u/mysql_ml/)

  1. 添加用户

    //登录MYSQL
    @>mysql -u root -p
    @>密码
    //创建用户
    mysql> insert into mysql.user(Host,User,Password) values('localhost','phplamp',password('1234'));
    //刷新系统权限表
    mysql>flush privileges;
    这样就创建了一个名为:phplamp  密码为:1234  的用户。

    //退出后登录一下
    mysql>exit;
    @>mysql -u phplamp -p
    @>输入密码
    mysql>登录成功

    (参考:http://www.cnblogs.com/aidd2008/archive/2009/04/16/1437609.html)

  2. 查看所有用户的权限

    在root下输入: mysql> SELECT DISTINCT CONCAT('User: ''',user,'''@''',host,''';') AS query FROM mysql.user;

    (参考http://blog.csdn.net/lampsunny/article/details/7410662)

3.为用户授权

//登录MYSQL(有ROOT权限)。我里我以ROOT身份登录.
@>mysql -u root -p
@>密码
//首先为用户创建一个数据库(phplampDB)
mysql>create database phplampDB;
//授权phplamp用户拥有phplamp数据库的所有权限
@>grant all privileges on phplampDB.* to phplamp@localhost identified by '1234';
//刷新系统权限表
mysql>flush privileges;
mysql>其它操作

//如果想指定部分权限给一用户,可以这样来写:
mysql>grant select,update on phplampDB.* to phplamp@localhost identified by '1234';
//刷新系统权限表。
mysql>flush privileges;

mysql> grant 权限1,权限2,…权限n on 数据库名称.表名称 to 用户名@用户地址 identified by ‘连接口令’;

权限1,权限2,…权限n代表select,insert,update,delete,create,drop,index,alter,grant,references,reload,shutdown,process,file等14个权限。
当权限1,权限2,…权限n被all privileges或者all代替,表示赋予用户全部权限。
当数据库名称.表名称被*.*代替,表示赋予用户操作服务器上所有数据库所有表的权限。
用户地址可以是localhost,也可以是ip地址、机器名字、域名。也可以用’%'表示从任何地址连接。
‘连接口令’不能为空,否则创建失败。

例如:
mysql>grant select,insert,update,delete,create,drop on vtdc.employee to [email protected] identified by ‘123′;
给来自10.163.225.87的用户joe分配可对数据库vtdc的employee表进行select,insert,update,delete,create,drop等操作的权限,并设定口令为123。

mysql>grant all privileges on vtdc.* to [email protected] identified by ‘123′;
给来自10.163.225.87的用户joe分配可对数据库vtdc所有表进行所有操作的权限,并设定口令为123。

mysql>grant all privileges on *.* to [email protected] identified by ‘123′;
给来自10.163.225.87的用户joe分配可对所有数据库的所有表进行所有操作的权限,并设定口令为123。

mysql>grant all privileges on *.* to joe@localhost identified by ‘123′;
给本机用户joe分配可对所有数据库的所有表进行所有操作的权限,并设定口令为123。


②MySql命令行添加用户(http://my.oschina.net/u/1179414/blog/202377)

创建用户:

命令:

1
CREATE USER  'username' @ 'host'  IDENTIFIED BY  'password' ;

说明:username – 你将创建的用户名, host – 指定该用户在哪个主机上可以登陆,如果是本地用户可用localhost,  如 果想让该用户可以从任意远程主机登陆,可以使用通配符%. password –  该用户的登陆密码,密码可以为空,如果为空则该用户可以不需要密码登 陆服务器.

例子:

1
2
3
4
5
CREATE USER  'dog' @ 'localhost'  IDENTIFIED BY  '123456'
CREATE USER  'pig' @ '192.168.1.101_'  IDENDIFIED BY  '123456'
CREATE USER  'pig' @ '%'  IDENTIFIED BY  '123456'
CREATE USER  'pig' @ '%'  IDENTIFIED BY  ''
CREATE USER  'pig' @ '%' ;

授权:

命令:

1
GRANT privileges ON databasename.tablename TO  'username' @ 'host'

说明: privileges – 用户的操作权限,如SELECT , INSERT , UPDATE  等(详细列表见该文最后面).如果要授予所 的权限则使用ALL.;databasename –  数据库名,tablename-表名,如果要授予该用户对所有数据库和表的相应操作权限则可用* 表示, 如*.*.
例子:

1
2
GRANT SELECT, INSERT ON  test .user TO  'pig' @ '%'
GRANT ALL ON *.* TO  'pig' @ '%' ;

注意:用以上命令授权的用户不能给其它用户授权,如果想让该用户可以授权,用以下命令:

1
GRANT privileges ON databasename.tablename TO  'username' @ 'host'  WITH GRANT OPTION;

设置与更改用户密码

命令:

1
SET PASSWORD FOR  'username' @ 'host'  = PASSWORD( 'newpassword' );

如果是当前登陆用户用

1
SET PASSWORD = PASSWORD( "newpassword" );

撤销用户权限 

命令:

1
REVOKE privilege ON databasename.tablename FROM  'username' @ 'host' ;

说明: privilege, databasename, tablename – 同授权部分.
例子

1
REVOKE SELECT ON *.* FROM  'pig' @ '%' ;

注意: 假如你在给用户’pig’@'%’授权的时候是这样的(或类似 的):GRANT SELECT ON test.user TO  ‘pig’@'%’, 则在使用 REVOKE SELECT ON *.* FROM  ‘pig’@'%’;命令并不能撤销该用户对test数据库中user表的SELECT 操作. 相反,如果授权使用的是GRANT SELECT ON  *.* TO ‘pig’@'%’;则 REVOKE SELECT ON test.user FROM  ‘pig’@'%’;命令也不能撤销该用户对test数据库中user表的 Select 权限.

具体信息可以用命令SHOW GRANTS FOR ‘pig’@'%’; 查看.

删除用户

命令:

1
DROP USER ‘username’@'host’;

一个典型的数据库建表, 建用户过程:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
创建用于localhost连接的用户并指定密码 
mysql> create user  'pcom' @ 'localhost'  identified by  'aaa7B2249'
Query OK, 0 rows affected (0.00 sec) 
      
创建数据库 
mysql> create database pcom default character  set  utf8 collate utf8_bin; 
Query OK, 1 row affected (0.00 sec) 
      
给本地用户授权, 这里不需要指定密码 
mysql> grant all on pcom.* to  'pcom' @ 'localhost'
Query OK, 0 rows affected (0.00 sec) 
      
给其他IP地址下的用户授权, 注意: 这里必须指定密码, 否则就可以无密码访问 
mysql> grant all on pcom.* to  'pcom' @ '192.168.0.0/255.255.0.0'  identified by  'aaa7B2249'
Query OK, 0 rows affected (0.00 sec) 
      
同理 
mysql> grant all on pcom.* to  'pcom' @ '172.20.0.0/255.255.0.0'  identified by  'aaa7B2249'
Query OK, 0 rows affected (0.00 sec) 
      
Done!


你可能感兴趣的:(follow大神教程——实践java爬虫之五)