1.获取帮助文档
-
cd C:Program Filesmysqlmysql-5.5.50-winx64 C:Program Filesmysqlmysql-5.5.50-winx64> binmysqld.exe --verbose --help > mysqld_note.txt
2.在 Windows 平台以服务运行
2.1.启动服务器
需要安装,写个安装脚本“binmysqld.exe --install”,执行即可。在服务管理运行数据库,默认服务名称“MySQL”。需要指定服务名称时,要在安装时设定“binmysqld.exe --install mysql5.5”。
安装时,如果使用“--install”表示主机启动时自动启动服务,使用“--install-manual”表示不启动。

rem 启动数据库② C:> net start mysql rem 启动数据库② C:> sc query mysql C:> sc start mysql rem 查看监听 C:> netstat -na -p tcp
连接服务器,root 用户默认无密码。安装后需要修改默认密码。测试成功后,按需要设定环境变量。初始登陆时,没有连接任何数据库。

C:Program Filesmysqlmysql-5.5.50-winx64> binmysql -uroot -p -h localhost mysql> show databases; mysql> use mysql; mysql> show tables;
2.2.启动多个端口
设置两个配置文件,建立两个数据目录;

[mysqld] port = 3307 bind_address = 192.168.130.1 character_set_server = gbk datadir = C:/data/data2 [mysqld] port = 3308 bind_address = 192.168.130.1 character_set_server = gbk datadir = C:/data/data3
启动服务:

C:WINDOWSsystem32>mysqld --defaults-file=C:/data/my2.ini 160629 10:09:05 [Note] mysqld (mysqld 5.5.50) starting as process 14408 ... C:WINDOWSsystem32>mysqld --defaults-file=C:/data/my3.ini 160629 10:09:30 [Note] mysqld (mysqld 5.5.50) starting as process 14508 ... C:WINDOWSsystem32>netstat -na -p tcp -o | findstr "192.168.130.1" TCP 192.168.130.1:3307 0.0.0.0:0 LISTENING 14408 TCP 192.168.130.1:3308 0.0.0.0:0 LISTENING 14508
2.3.服务方式启动多个端口
必要时,删除之前添加的服务。重新安装服务:
mysqld --install mysql2 --defaults-file=C:/data/my2.ini mysqld --install mysql3 --defaults-file=C:/data/my3.ini net start mysql2 net start mysql3
mysqld --remove mysql
此时,mysql 连接时需要使用选项“-P”指定连接的服务使用的端口号。
2.4.命名管道、共享内存
使用命名管道连接数据库,修改配置文件:
skip-networking
enable-named-pipe
重启服务,使用命令连接数据库:
mysql --protocol=pipe -uroot
如果,需改了系统默认用户,查验后适当添加用户“create user 'root'@'localhost';”。
使用共享内存连接数据库,修改配置文件:
skip-networking
shared-memory=on
重启服务,使用命令连接数据库:
mysql --protocol=memory -uroot
指定连接名称配置文件、连接命令(默认连接“MYSQL”):

skip-networking shared-memory=on shared_memory_base_name = MYSQL1
View Code
* 如果是没有明确使用哪个,默认是命名管道方式;两者在监听时共享内存可以通过命令“mysql -uroot”连接:

skip-networking #shared-memory=on #enable-named-pipe
3.配置信息
在没有“任何配置”的情况下,服务依然可以启动,需要有效控制服务启动时设定配置文件。在安装目录下依据参考配置文件,修改(复制)为“my.ini”。
查看运行时配置信息。(帮助文档最后一行获悉)(设定下环境变量)
3.1.查询

rem 配置查询 C: mysqladmin variables rem 查看字符集 C: mysqladmin variables | findstr "character" rem 查看数据路径 C: mysqladmin variables | findstr "datadir" rem 查看存储引擎 C: mysqladmin variables | findstr "default_storage_engine" rem 查看“hostname” C: mysqladmin variables | findstr "hostname" rem 查看“innodb”信息 C: mysqladmin variables | findstr "innodb" rem 查看日志信息 C: mysqladmin variables | findstr "log" rem 查看“port”信息 C: mysqladmin variables | findstr "port" rem 性能查询 C: mysqladmin status
3.2.设置
字符集改为“gbk”,修改配置文件“[mysqld]”。
character_set_server = gbk
可以修改的字符集,可以通过命令查询得知,也可以从配置文件(“sharecharsetsindex.xml”)里看到。
mysql> show character set;
监听端口改为“33306”,监听地址“192.168.130.1”:
port = 33306
bind_address = 192.168.130.1
设定“bind_address”选项后,监听地址被限定在某一个接口地址上,不设定该选项,所有机器上地址都监听。默认监听显示“0.0.0.0”,表示监听了“所有 ipv4 地址”;如果是“::”,表示监听了“所有 ipv4 和 ipv6 地址”。
数据库目录;复制默认的目录内容到新设定的数据目录中。
datadir = D:/data/
4.增加用户
- 默认情况,mysql 只接受本地登录的用户;并且登陆无需密码,连用户名不输入都可以。
mysql> CREATE USER 'admin'@'localhost' IDENTIFIED BY 'some_pass'; mysql> GRANT ALL PRIVILEGES ON *.* TO 'admin'@'localhost' -> WITH GRANT OPTION; mysql> mysql> CREATE USER 'dev'@'localhost' IDENTIFIED BY 'develop'; mysql> GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DROP -> ON bankaccount.* -> TO 'dev'@'localhost'; mysql> mysql> CREATE USER 'luck'@'localhost' IDENTIFIED BY 'some_pass'; Query OK, 0 rows affected (0.00 sec) mysql> SHOW GRANTS FOR 'luck'@'localhost'; +-------------------------------------------------------------------------------------------------------------+ | Grants for luck@localhost | +-------------------------------------------------------------------------------------------------------------+ | GRANT USAGE ON *.* TO 'luck'@'localhost' IDENTIFIED BY PASSWORD '*BF06A06D69EC935E85659FCDED1F6A80426ABD3B' | +-------------------------------------------------------------------------------------------------------------+ 1 row in set (0.00 sec) mysql> mysql> SET PASSWORD FOR -> 'admin'@'localhost' = PASSWORD('newpass'); mysql> SET PASSWORD = PASSWORD('mypass'); mysql> mysql> DROP USER 'admin'@'localhost'; mysql> DROP USER 'dev'@'localhost'; mysql> DROP USER 'luck'@'localhost';
mysqladmin
语法:mysqladmin 选项 子命令;子命令:create、drop、extended-status、flush-privileges、flush-status、ping、kill、processlist、shutdown、status、(global )variables。选项:-i、-c。
C:> mysqladmin -uroot -p -h192.168.130.1 extend-status C:> mysqladmin -uroot -p -h192.168.130.1 shutdown C:> mysqladmin -uroot -p -h192.168.130.1 ping
5.design
- 1NF
- 字段不可再分,有主键;
- 满足 1NF,就认为是关系数据库;
- 2NF
- 满足 1NF;
- 非主键字段完全依赖主键;
- 3NF
- 满足 2NF;
- 行内不存在传递依赖;