Home >Database >Mysql Tutorial >Win7下MySQL解压缩版安装配置

Win7下MySQL解压缩版安装配置

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOriginal
2016-06-07 15:08:12917browse

原本想搭建Hive远程模式,发现机子上除了oracle和sybase以外没有其他的数据库了。想着装个mysql吧,计划把mysql装在宿主Win7上,然后把Hive环境搭在虚拟机中,这样就可以实现“远程模式”了。 印象当中mysql简直太简单了,因为以前都是装的安装版,直接next

原本想搭建Hive远程模式,发现机子上除了oracle和sybase以外没有其他的数据库了。想着装个mysql吧,计划把mysql装在宿主Win7上,然后把Hive环境搭在虚拟机中,这样就可以实现“远程模式”了。 印象当中mysql简直太简单了,因为以前都是装的安装版,直接next、next就OK了,配置的话也有客户端。于是这次准备搞个压缩版的玩玩,几年没玩过了,发现碰到的问题还挺多的,索性,总结一下吧,告诫自己:忘记过去就是背叛。。。


一、安装:


下载地址:

http://www.mysql.com/downloads/mysql/

我的是以前下的mysql-5.5.17-winx64.zip,解压后即可:


Win7下MySQL解压缩版安装配置


二、配置:


1)、默认参数文件。安装目录下有五个*.ini文件,这五个是模板文件,目测了下基本没啥区别,主要的区别就是分配的内存大小不一样。


①my-small.ini是为了小型数据库而设计的。不应该把这个模型用于含有一些常用项目的数据库。
②my-medium.ini是为中等规模的数据库而设计的。如果你正在企业中使用RHEL,可能会比这个操作系统的最小RAM需求(256MB)明显多得多的物理内存。由此可见,如果有那么多RAM内存可以使用,自然可以在同一台机器上运行其它服务。
③my-large.ini是为专用于一个SQL数据库的计算机而设计的。由于它可以为该数据库使用多达512MB的内存,所以在这种类型的系统上将需要至少1GB的RAM,以便它能够同时处理操作系统与数据库应用程序。
④my-huge.ini是为企业中的数据库而设计的。这样的数据库要求专用服务器和1GB或1GB以上的RAM。
⑤my-innodb-heavy-4G.ini用于只有InnoDB的安装,最多有4G RAM,支持大的查询。我们要建立一个名为my.ini的配置文件用以mysql启动。mysql启动时,如果有my.ini文件,则会读取该文件中的配置信息作为默认参数,如果找不到my.ini文件,服务也能启动,具体的默认参数从哪来的,我也不清楚(有人知道不?),但是我能肯定的是,默认配置不是从目录下的那五个模板文件中读取。mysql读取配置文件的顺序为:
C:\my.ini --> C:\my.cnf --> C:\WINDOWS\my.ini --> C:\WINDOWS\my.cnf --> 安装目录\my.ini --> 安装录\my.cnf


可以参照五个模板新建或者直接copy一个保存为my.ini,具体个性化的参数,可以自行设置,如各种端口啊、内存啊、字符集啊神马的。

Mysql服务器绑定IP的方法:

my.ini中加入bind-address = 127.0.0.1,然后重启mysql,可以绑定IP


2)、环境变量。在path中增加mysql安装的路径,免得每次执行bin目录下的命令时都要输全路径。


Win7下MySQL解压缩版安装配置


一直配置到mysql所在目录下的bin目录,F:\InstallProgram\work\mysql\mysql-5.5.17-winx64\bin


3)、启动命令。mysql的启动命令是bin\mysqld.exe,懒得每次都输入命令,可以在安装目下建立一个批处理文件,一点就OK了。新建文本文件,输入 bin\mysqld.exe--console 保存为start.bat,以后双击就行了。现在目录下多了两了文件了:


Win7下MySQL解压缩版安装配置


4)、数据库配置。

1、启动:双击start.bat启动服务:


Win7下MySQL解压缩版安装配置


看到如此页面,则表示启动成功,如果启动不成功,需要去检查配置文件。


2、登录:


Win7下MySQL解压缩版安装配置


-u root 表示以root用户登录。不指定用户名的话,将会匿名登录,建议直接删除此匿名用户(否则以后会出现问题,后面我会提到)。刚登录时并没有要求我们输入密码,这是因为mysql压缩版的root用户默认密码为空,查看mysql数据库下的user表可知:


  1. mysql> select * from mysql.user;
复制代码


Win7下MySQL解压缩版安装配置


貌似图太小了?换一张,截掉了后面权限相关的字段:


Win7下MySQL解压缩版安装配置


user表介绍:

user是mysql下的一张表,记录了用户及相关权限的信息。

主键为:Host+User

Host:表示账号允许从哪个主机联机。

User:账号。

Password:密码。

---以下部分为网上直接copy来的,^_^-


  1. Select_priv。确定用户是否可以通过SELECT命令选择数据。
  2. Insert_priv。确定用户是否可以通过INSERT命令插入数据。
  3. Update_priv。确定用户是否可以通过UPDATE命令修改现有数据。
  4. Delete_priv。确定用户是否可以通过DELETE命令删除现有数据。
  5. Create_priv。确定用户是否可以创建新的数据库和表。
  6. Drop_priv。确定用户是否可以删除现有数据库和表。
  7. Reload_priv。确定用户是否可以执行刷新和重新加载MySQL所用各种内部缓存的特定命令,包括日志、权限、主机、查询和表。
  8. Shutdown_priv。确定用户是否可以关闭MySQL服务器。在将此权限提供给root账户之外的任何用户时,都应当非常谨慎。
  9. Process_priv。确定用户是否可以通过SHOW PROCESSLIST命令查看其他用户的进程。
  10. File_priv。确定用户是否可以执行SELECT INTO OUTFILE和LOAD DATA INFILE命令。
  11. Grant_priv。确定用户是否可以将已经授予给该用户自己的权限再授予其他用户。例如,如果用户可以插入、选择和删除foo数据库中的信息,并且授予了GRANT权限,则该用户就可以将其任何或全部权限授予系统中的任何其他用户。
  12. References_priv。目前只是某些未来功能的占位符;现在没有作用。
  13. Index_priv。确定用户是否可以创建和删除表索引。
  14. Alter_priv。确定用户是否可以重命名和修改表结构。
  15. Show_db_priv。确定用户是否可以查看服务器上所有数据库的名字,包括用户拥有足够访问权限的数据库。可以考虑对所有用户禁用这个权限,除非有特别不可抗拒的原因。
  16. Super_priv。确定用户是否可以执行某些强大的管理功能,例如通过KILL命令删除用户进程,使用SET 
  17. GLOBAL修改全局MySQL变量,执行关于复制和日志的各种命令。
  18. Create_tmp_table_priv。确定用户是否可以创建临时表。
  19. Lock_tables_priv。确定用户是否可以使用LOCK TABLES命令阻止对表的访问/修改。
  20. Execute_priv。确定用户是否可以执行存储过程。此权限只在MySQL 5.0及更高版本中有意义。
  21. Repl_slave_priv。确定用户是否可以读取用于维护复制数据库环境的二进制日志文件。此用户位于主系统中,有利于主机和客户机之间的通信。
  22. Repl_client_priv。确定用户是否可以确定复制从服务器和主服务器的位置。
  23. Create_view_priv。确定用户是否可以创建视图。此权限只在MySQL 5.0及更高版本中有意义。关于视图的更多信息,参见第34章。
  24. Show_view_priv。确定用户是否可以查看视图或了解视图如何执行。此权限只在MySQL 5.0及更高版本中有意义。关于视图的更多信息,参见第34章。
  25. Create_routine_priv。确定用户是否可以更改或放弃存储过程和函数。此权限是在MySQL 5.0中引入的。
  26. Alter_routine_priv。确定用户是否可以修改或删除存储函数及函数。此权限是在MySQL 5.0中引入的。
  27. Create_user_priv。确定用户是否可以执行CREATE USER命令,这个命令用于创建新的MySQL账户。
  28. Event_priv。确定用户能否创建、修改和删除事件。这个权限是MySQL 5.1.6新增的。
  29. Trigger_priv。确定用户能否创建和删除触发器,这个权限是MySQL 5.1.6新增的。
复制代码


此外,默认情况下mysql是不允许远程访问的,也不支持root用户远程访问,原因在于host字段的值:localhost和127.0.0.1都表示本地访问。host字段还可以赋值为IP地址或者%,%表示可以在任何地方连接。


3、修改初始化账号:



  1. mysql> update mysql.user set password=PASSWORD('root') where user='root' or user='';
  2. Query OK, 4 rows affected (0.00 sec)
  3. Rows matched: 4  Changed: 4  Warnings: 0

  4. mysql> grant all on *.* to root@'%' identified by 'root';
  5. Query OK, 0 rows affected (0.00 sec)

  6. mysql> select * from mysql.user;

  7. mysql> commit;
  8. Query OK, 0 rows affected (0.00 sec)

  9. mysql> flush privileges;
  10. Query OK, 0 rows affected (0.01 sec)
复制代码
PS:PASSWORD函数表示对密码加密,否则的话就是明文了。


Win7下MySQL解压缩版安装配置


貌似这张图也小了?换一张,截掉了后边权限相关的字段:


Win7下MySQL解压缩版安装配置



OK,root账户和匿名账户的问题(暂时)搞定了。


4、配置hive账户:



  1. mysql> grant all on *.* to 'hive'@'%' identified by 'hive' with grant option;
  2. Query OK, 0 rows affected (0.00 sec)

  3. mysql> commit;
  4. Query OK, 0 rows affected (0.00 sec)

  5. mysql> flush privileges;
  6. Query OK, 0 rows affected (0.00 sec)
复制代码


Win7下MySQL解压缩版安装配置


这张也小?换一张,截掉了后边权限相关的字段:


Win7下MySQL解压缩版安装配置



测试hive账号:


Win7下MySQL解压缩版安装配置


远程连接看样子是没问题的,那么local的呢?


Win7下MySQL解压缩版安装配置


local连接失败,hive我明明赋值了host为%啊。。。。这是为什么捏?罪魁祸首就是那个未删除的匿名用户,原因用户登陆的时候,数据库是先匹配host的,而数据库中localhost和127.0.0.1都找不找一个叫hive的user,所以连接失败。解决方法就是把匿名用户删掉就可以了,别的不变:


Win7下MySQL解压缩版安装配置


再次登录就OK了:


Win7下MySQL解压缩版安装配置


5、简单测试下:


Win7下MySQL解压缩版安装配置


目测,暂时没啥问题了。至此,mysql部署成功。

  1. 附带mysql的一些简单操作:
  2. 第一招、mysql服务的启动和停止(针对安装版,或者压缩版已注册服务)
  3. net stop mysql
  4. net start mysql
  5. 第二招、登陆mysql
  6. 语法如下: mysql -u用户名 -p用户密码
  7. 键入命令mysql -uroot -p, 回车后提示你输入密码,输入12345,然后回车即可进入到mysql中了,mysql的提示符是:
  8. mysql>
  9. 注意,如果是连接到另外的机器上,则需要加入一个参数-h机器IP
  10. 第三招、增加新用户
  11. 格式:grant 权限 on 数据库.* to 用户名@登录主机 identified by "密码"
  12. 如,增加一个用户user1密码为password1,让其可以在本机上登录, 并对所有数据库有查询、插入、修改、删除的权限。首先用以root用户连入mysql,然后键入以下命令:
  13. grant select,insert,update,delete on *.* to user1@localhost Identified by "password1";
  14. 如果希望该用户能够在任何机器上登陆mysql,则将localhost改为"%"。
  15. 如果你不想user1有密码,可以再打一个命令将密码去掉。
  16. grant select,insert,update,delete on mydb.* to user1@localhost identified by "";
  17. 第四招: 操作数据库
  18. 登录到mysql中,然后在mysql的提示符下运行下列命令,每个命令以分号结束。
  19. 1、 显示数据库列表。
  20. show databases;
  21. 缺省有两个数据库:mysql和test。 mysql库存放着mysql的系统和用户权限信息,我们改密码和新增用户,实际上就是对这个库进行操作。
  22. 2、 显示库中的数据表:
  23. use mysql;
  24. show tables;
  25. 3、 显示数据表的结构:
  26. describe 表名;
  27. 4、 建库与删库:
  28. create database 库名;
  29. drop database 库名;
  30. 5、 建表:
  31. use 库名;
  32. create table 表名(字段列表);
  33. drop table 表名;
  34. 6、 清空表中记录:
  35. delete from 表名;
  36. 7、 显示表中的记录:
  37. select * from 表名;
  38. 第五招、导出和导入数据
  39. 1. 导出数据:
  40. mysqldump --opt test > mysql.test
  41. 即将数据库test数据库导出到mysql.test文件,后者是一个文本文件
  42. 如:mysqldump -u root -p123456 --databases dbname > mysql.dbname
  43. 就是把数据库dbname导出到文件mysql.dbname中。
  44. 2. 导入数据:
  45. mysqlimport -u root -p123456
  46. 不用解释了吧。
  47. 3. 将文本数据导入数据库:
  48. 文本数据的字段数据之间用tab键隔开。
  49. use test;
  50. load data local infile "文件名" into table 表名;
  51. 1:使用SHOW语句找出在服务器上当前存在什么数据库:
  52. mysql> SHOW DATABASES;
  53. 2:2、创建一个数据库MYSQLDATA
  54. mysql> CREATE DATABASE MYSQLDATA;
  55. 3:选择你所创建的数据库
  56. mysql> USE MYSQLDATA; (按回车键出现Database changed 时说明操作成功!)
  57. 4:查看现在的数据库中存在什么表
  58. mysql> SHOW TABLES;
  59. 5:创建一个数据库表
  60. mysql> CREATE TABLE MYTABLE (name VARCHAR(20), sex CHAR(1));
  61. 6:显示表的结构:
  62. mysql> DESCRIBE MYTABLE;
  63. 7:往表中加入记录
  64. mysql> insert into MYTABLE values ("hyq","M");
  65. 8:用文本方式将数据装入数据库表中(例如D:/mysql.txt)
  66. mysql> LOAD DATA LOCAL INFILE "D:/mysql.txt" INTO TABLE MYTABLE;
  67. 9:导入.sql文件命令(例如D:/mysql.sql)
  68. mysql>use database;
  69. mysql>source d:/mysql.sql;
  70. 10:删除表
  71. mysql>drop TABLE MYTABLE;
  72. 11:清空表
  73. mysql>delete from MYTABLE;
  74. 12:更新表中数据
  75. mysql>update MYTABLE set sex="f" where name='hyq';
  76. posted on 2006-01-10 16:21 happytian 阅读(6) 评论(0) 编辑 收藏 收藏至365Key
  77. 13:备份数据库
  78. mysqldump -u root 库名>xxx.data
  79. 14:例2:连接到远程主机上的MYSQL
  80. 假设远程主机的IP为:110.110.110.110,用户名为root,密码为abcd123。则键入以下命令:
  81. mysql -h110.110.110.110 -uroot -pabcd123 // 远程登录 
  82. (注:u与root可以不用加空格,其它也一样)
  83. 3、退出MYSQL命令: exit (回车)
复制代码


http://www.dataguru.cn/forum.php?mod=viewthread&tid=34746

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn