widowsServer2008 R2 64位操作系统安装mysql数据库
1. MySql官网下载https://dev.mysql.com/downloads/mysql/,选择对应的mysql数据库版本进行下载;
2. 下载下来的压缩包解压到存放路径,如:C:\Program Files\mysql-5.7.16-winx64\mysql-5.7.16-winx64下;
3. 解压下来的压缩包里面默认有一个my-defult.ini(mysql)的配置文件(注意并且目录中是没有data文件的(生成data文件往下看);
4. WIN+R输入CMD进入windows的dos命令界面;
5. 在dos界面下切到解压的mysql/bin目录下,执行mysqld -install来安装MySql服务,执行完成后可以在任务管理器服务页签下查看到mysql的服务;
javascript mysqld -install
6. 安装mysql 5.7+版本时,若发现因根目录下,缺少data文件夹的情况,请不要去拷贝其他版本的data文件夹,因为此操作会出现很多潜在问题,如果复制了,请先删除.
需要先自动生成data目录,在dos命令界面里面执行:mysqld --initialize-insecure
–user=mysql;执行完成后可以在mysql一级目录下看到多了一个data文件夹;
```javascript
mysqld --initialize-insecure --user=mysql
```
7. 修改my-defult.ini文件(windos下的mysql的配置文件,等同于linux下mysql的mysql.cnf文件),添加你的mysql启动配置;
8. 进入任务管理器界面,选择服务mysql,右键重新启动重新启动mysql数据库服务
9. 然后在dos界面里切换到mysql/bin目录下执行:
mysql -u root -p直接回车,会弹出Enter password(输入你的root账号密码),默认第一次安装的时候是没有密码的,直接回车跳过
mysql>set password=password('你的密码'); ---设置你的root账号密码
mysql>flush privileges;--flush privileges命令本质上的作用是将当前user和privilige表中的用户信息/权限设置从mysql库(MySQL数据库的内置库)中提取到内存里。MySQL用户数据和权限有修改后,希望在"不重启MySQL服务"的情况下直接生效,那么就需要执行这个命令。通常是在修改ROOT帐号的设置后,怕重启后无法再登录进来,那么直接flush之后就可以看权限设置是否生效。而不必冒太大风险。
mysql -u root -p
mysql>set password=password('你的密码');
mysql>flush privileges;--flush privileges
---------------------------------到这里基本就安装结束了,可以使用工具连接mysql数据库服务了---------------------------------
10. 如果忘记密码,可进入MySql修改user表密码
mysql>use mysql; mysql>update user set password=password('你的密码') where user='root';
mysql>flush privileges;
11. 使用工具连上数据库后:
select version(); --可以查询当前安装的mysql版本
show Variables like '%table_names'--可以查看当前mysql表名是否区分大小写,默认配置是0,区分大小写,如果配置文件里面设置了lower_case_table_names=1,则不区分大小写
my-default.ini 配置文件内容()
。
# For advice on how to change settings please see
# http://dev.mysql.com/doc/refman/5.7/en/server-configuration-defaults.html
# *** DO NOT EDIT THIS FILE. It's a template which will be copied to the
# *** default location during install, and will be replaced if you
# *** upgrade to a newer version of MySQL.
[mysqld]
# Remove leading # and set to the amount of RAM for the most important data
# cache in MySQL. Start at 70% of total RAM for dedicated server, else 10%.
# innodb_buffer_pool_size = 128M
# Remove leading # to turn on a very important data integrity option: logging
# changes to the binary log between backups.
# log_bin
# These are commonly set, remove the # and set as required.
# mysql的文件路径(修改为自己的解压文件路径)
basedir = C:\Program Files\mysql-5.7.16-winx64\mysql-5.7.16-winx64
# mysql下的data文件路径(修改为自己的解压文件一级目录下的data文件路径)
datadir = C:\Program Files\mysql-5.7.16-winx64\mysql-5.7.16-winx64\data
# 端口号:
port = 3306
# Remove leading # to set options mainly useful for reporting servers.
# The server defaults are faster for transactions and fast SELECTs.
# Adjust sizes as needed, experiment to find the optimal values.
# join_buffer_size = 128M
# sort_buffer_size = 2M
# read_rnd_buffer_size = 2M
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
# 默认存储引擎innoDB
default-storage-engine=INNODB
# Set the SQL mode to strict
sql-mode="STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"
#日志输出为文件
log-output=FILE
# 是否开启sql执行结果记录,必须要设置general_log_file参数,日志的路径地址
# 即日志跟踪,1为开启,0为关闭
general-log=0
general_log_file="execute_sql_result.log"
# 配置慢查询,5.7版本默认为1
slow-query-log=1
slow_query_log_file="user-slow.log"
long_query_time=10
#默认不开启二进制日志
#log-bin=mysql-log
#错误信息文件设置,会将错误信息放在data/mysql.err文件下
log-error=mysql.err
# Server Id.数据库服务器id,这个id用来在主从服务器中标记唯一mysql服务器
server-id=1
#lower_case_table_names: 此参数不可以动态修改,必须重启数据库
#lower_case_table_names = 1 表名存储在磁盘是小写的,但是比较的时候是不区分大小写
#lower_case_table_names=0 表名存储为给定的大小和比较是区分大小写的
#lower_case_table_names=2, 表名存储为给定的大小写但是比较的时候是小写的
lower_case_table_names=1
#限制数据的导入导出都只能在Uploads文件中操作,这个是在sql语句上的限制。
#secure-file-priv="D:\AppServ\mysql-5.7.23/Uploads"
#值为null ,也就是注释掉这个参数或者secure-file-priv=null。表示限制mysqld 不允许导入|导出
#值为/tmp/ ,即secure-file-priv="/tmp/" 表示限制mysqld 的导入|导出只能发生在/tmp/目录下
#没有具体值时,即secure-file-priv= 表示不对mysqld 的导入|导出做限制
# 最大连接数
max_connections=151
# 打开表的最大缓存数
table_open_cache=2000
# tmp_table_size 控制内存临时表的最大值,超过限值后就往硬盘写,写的位置由变量 tmpdir 决定
tmp_table_size=16M
# 每建立一个连接,都需要一个线程来与之匹配,此参数用来缓存空闲的线程,以至不被销毁,
# 如果线程缓存中有空闲线程,这时候如果建立新连接,MYSQL就会很快的响应连接请求。
# 最大缓存线程数量
thread_cache_size=10
#表名不区分大小写
lower_case_table_names=1