一、下载MySQL
官网地址:
https://www.mysql.com/
下载地址:
http://dev.mysql.com/downloads/mysql/
二、MySQL安装
1、许可协议
License Agreement(许可协议)->I accept the license terms(我接受许可条款)->Next(下一个)
2、选择安装类型
Choosing a Setup Type(选择安装类型)->Custom(自定义)->Next(下一个)
3、选择产品和功能
Select Products and Features(选择产品和功能)->MySQL Server(MySQL服务器)和MySQL Workbench(MySQL工作台)->Next(下一个)
4、安装
Installation(安装)->Execute(执行)
Installation(安装)->Next(下一个)
5、产品配置
Product Configuration(产品配置)->Next(下一个)
5.1、类型和网络
Type and Networking(类型和网络)->Config Type(配置类型):Server Machine(服务器类型)->Next(下一个)
Server Configuration Type(服务配置类型)
Config Type(配置类型):Server Machine(服务器类型)
Connectivity(连接)
Port Number(端口号)
Open Firewall port for network access(打开防火墙端口网络访问)
Named Pipe(命名管道):Pipe Name(管道名字)
Shared Memory(共享内存):Memory Name(内存名字)
Advanced Configuration(高级配置)
Show Advanced Options(显示高级选项)
5.2、账号和角色
Accounts and Roles(账号和角色)->MySQL Root Password(MySQL的Root用户密码)/Repeate Password(重复密码)->Next(下一个)
5.3、Windows服务Windows Service(Windows服务)->Windows Service Name(Windows服务名称)->Next(下一个)
5.4、插件和扩展
Plugins and Extensions(插件和扩展)->Next(下一个)
5.5、应用服务器配置
Apply Server Configuration(应用服务器配置)->Execute(执行)
Apply Server Configuration(应用服务器配置)->Finish(完成)
6、产品配置完成
Product Configuration(产品配置)->Next(下一个)
7、安装完成
Installation Complete(安装完成)->Finish(完成)
8、MySQL工作台启动界面
三、配置MySQL
配置MySQL环境变量
按下Win+X+Y键
进入Win系统界面
点击"高级系统设置"—>"高级"—>"环境变量"
在环境变量中,设置三个属性,分别为:
MySQL_HOME,Path
(大小写无所谓),若已存在则点击"编辑",不存在则点击"新建"。
a、设置MySQL_HOME
变量名:MySQL_HOME
变量值:C:/Program Files/MySQL/MySQL Server 5.7(MySQL安装路径)
b、设置Path
变量名:Path
变量值:%MySQL_HOME%/bin
环境变量配置完成之后测试是否成功
按下Win+X+C键
打开命令提示符
输入:mysql --version
看到如下图,说明已经配置成功了。
四、优化MySQL
1、编辑配置文件my.ini
文件位置:C:/ProgramData/MySQL/MySQL Server 5.7
配置文件内容
# *** MySQL应用端设置 *** [client]#MySQL端口port=3306#MySQL字符集default-character-set=utf8 # *** MySQL服务端设置 ***[mysqld]#表示是本机的序号为1,一般来讲就是master的意思server-id = 1#MySQL端口号port = 3306#MySQL用户user = mysql#全局地址bind_address= 0.0.0.0#MySQL安装目录basedir="C:/Program Files/MySQL/MySQL Server 5.7/"#MySQL数据目录datadir="C:/ProgramData/MySQL/MySQL Server 5.7/Data/"#MySQL错误日志路径log_error="C:/ProgramData/MySQL/MySQL Server 5.7/Data/mysql-error.log"#MySQL进程IDpid-file="C:/ProgramData/MySQL/MySQL Server 5.7/Data/mysql.pid"#MySQL字符集character-set-server=utf8#操作系统在监听队列中所能保持的连接数back_log = 300#MySQL连接数的上限max_connections = 3000#每个客户端连接最大的错误允许数量max_connect_errors = 50#所有线程所打开表的数量table_open_cache = 4096#跳过外部锁定external-locking = FALSE#服务器发送和接受的最大包长度max_allowed_packet = 32M#独立的内存表所允许的最大容量max_heap_table_size = 128M#排序缓冲分配的内存大小sort_buffer_size = 16M#全联合发生时分配的内存大小join_buffer_size = 16M#线程缓存分配的大小thread_cache_size = 16#运行的线程的数量#thread_concurrency = 8#MySQL的查询缓冲大小query_cache_size = 128M#MySQL的查询缓冲最小值query_cache_limit = 4M#被全文检索索引的最小的字长ft_min_word_len = 8#当创建新表时作为默认使用的表类型default-storage-engine = InnoDB#线程使用的堆大小thread_stack = 512K#设定默认的事务隔离级别.可用的级别如下:#READ-UNCOMMITTED, READ-COMMITTED, REPEATABLE-READ, SERIALIZABLEtransaction_isolation = REPEATABLE-READ#服务器关闭交互式连接前等待活动的秒数interactive_timeout = 1000#服务器关闭非交互连接之前等待活动的秒数wait_timeout = 1000#内部(内存中)临时表的最大大小tmp_table_size = 128M#MySQL不区分大小写lower_case_table_names=1#禁用符号链接symbolic-links=0#禁用加密插件early-plugin-load=""#开启查询缓存explicit_defaults_for_timestamp=true#开启支持模示sql_mode='STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION'#显示兼容show_compatibility_56=on#开启日志时间戳为系统时间log_timestamps=system#跳过安全访问#skip-grant-tables#跳过安装路径secure-file-priv = NULL#SSL配置skip-ssl#禁用DNS解析#skip-name-resolve#不要监听网络#skip-networking#取消文件系统的外部锁#skip-locking # *** 慢查询参数 ***#慢查询设定的时间long_query_time = 6#启动慢查询日志slow_query_log#慢查询日志路径slow_query_log_file=slow.log#将所有没有使用带索引的查询语句全部写到慢查询日志中log_queries_not_using_indexes = 1#开启记录管理型慢SQLlog_slow_admin_statements = 1#保存查询的日志log_slow_slave_statements = 1#每分钟允许记录到slow log的且未使用索引的SQL语句次数log_throttle_queries_not_using_indexes = 10#最小检查行数限制min_examined_row_limit = 100 # *** 中继和状态日志参数 ***#二进制日志路径log-bin=mysql-bin#binlog日志格式binlog_format = MIXED #binlog记录SQL状态所持有的缓存大小binlog_cache_size = 4M#binlog使用的最大缓存内存大小max_binlog_cache_size = 512M#binlog日志大小max_binlog_size = 32M#binlog日志保留天数expire_logs_days = 7#主服信息记录库=表/文件#master_info_repository = TABLE#中继日志信息记录库#relay_log_info_repository = TABLE#同步主库日志信息#sync_binlog = 1#启用gtid类型,否则就是普通的复制架构#gtid_mode = on#强制GTID的一致性#enforce_gtid_consistency = 1#slave更新是否记入日志#log_slave_updates#中继日志信息名称#relay_log = relay.log#自动修复日志#relay_log_recovery = 1#默认开启简化的GTID 恢复#binlog_gtid_simple_recovery = 1#自动跳过错误信息slave_skip_errors = ddl_exist_errors # *** INNODB 相关选项 ***#INNODB的数据页大小innodb_page_size = 16K#缓存innodb表的索引,数据,插入数据时的缓冲innodb_buffer_pool_size = 256M#InnoDB缓存池被划分到一个区域innodb_buffer_pool_instances = 1#启动MySQL服务时,MySQL将本地热数据加载到InnoDB缓冲池中innodb_buffer_pool_load_at_startup = 1#停止MySQL服务时,InnoDB将InnoDB缓冲池中的热数据保存到本地硬盘innodb_buffer_pool_dump_at_shutdown = 1#事务等待获取资源等待的最长时间innodb_lock_wait_timeout = 5#使用单独的清除线程收回数据innodb_purge_threads = 1#单列索引限制innodb_large_prefix = 1#能否将死锁信息保存到日志中innodb_print_all_deadlocks = 1#INNODB排序缓冲分配的内存大小innodb_sort_buffer_size = 128K#InnoDB 将数据保存在一个或者多个数据文件中成为表空间.innodb_data_file_path = ibdata1:10M:autoextend#在InnoDb 核心内的允许线程数量.innodb_thread_concurrency = 16#日志写入日志文件在每次提交后,但是日志文件只有大约每秒才会刷新到磁盘上.innodb_flush_log_at_trx_commit = 1#用来缓冲日志数据的缓冲区的大小.innodb_log_buffer_size = 16M#在日志组中每个日志文件的大小.innodb_log_file_size = 512M#在日志组中的文件总数.innodb_log_files_in_group = 3#在InnoDB 缓冲池中最大允许的脏页面的比例.innodb_max_dirty_pages_pct = 90#事物回滚等待的时间innodb_lock_wait_timeout = 120#InnoDB是否需要将所有表的数据和索引存放在共享表空间里(innodb_file_per_table = OFF) #或者为每张表的数据单独放在一个.ibd文件(innodb_file_per_table = ON)innodb_file_per_table = on#转储每个bp instance LRU上最热的page的百分比innodb_buffer_pool_dump_pct = 40#多个page cleaner线程提高脏页刷新效率innodb_page_cleaners = 4#可以截断undo日志位于撤消表空间innodb_undo_log_truncate = 1#控制最大undo tablespace文件的大小innodb_max_undo_log_size = 2G#用于控制purge回滚段的频度innodb_purge_rseg_truncate_frequency = 128#不使用INNODB #skip-innodb # *** MyISAM 相关选项 ***#关键词缓冲的大小key_buffer_size = 128M#MyISAM表全表扫描的缓冲大小read_buffer_size = 8M#随机读取数据缓冲区使用内存read_rnd_buffer_size = 16M#MyISAM 使用特殊的类似树的cache来使得突发插入bulk_insert_buffer_size = 256M#到一个空表中引起重建索引时被分配.myisam_sort_buffer_size = 256M#MySQL重建索引时所允许的最大临时文件的大小myisam_max_sort_file_size = 10G#如果一个表拥有超过一个索引, MyISAM 可以通过并行排序使用超过一个线程去修复他们.myisam_repair_threads = 1#自动检查和修复没有适当关闭的 MyISAM 表.#myisam_recover#默认关闭Federatedskip-federated [mysqldump]#不要在将内存中的整个结果写入磁盘之前缓存quick#服务器发送和接受的最大包长度max_allowed_packet = 32M [mysql]#自动补全no-auto-rehash#MySQL字符集default-character-set=utf8 [myisamchk]#关键词缓冲的大小key_buffer = 16M#排序缓冲分配的内存大小sort_buffer_size = 16M#写入缓存的内存大小read_buffer = 8M#读取缓存的内存大小write_buffer = 8M [mysqld_safe]#增加每个进程的可打开文件数量.open-files-limit = 8192
2、重启MySQL输入:
net stop mysql
net start mysql
五、更换MySQL数据目录
1、创建MySQL数据目录
在E盘创建MySQL数据目录
数据目录位置:E:/MySQL/Data
2、改写配置文件(将my-default.ini重命名为my.ini)
文件位置:C:/Program Files/MySQL/MySQL Server 5.7
# *** MySQL应用端设置 *** [client]#MySQL端口port=3306#MySQL字符集default-character-set=utf8 # *** MySQL服务端设置 ***[mysqld]#表示是本机的序号为1,一般来讲就是master的意思server-id = 1#MySQL端口号port = 3306#MySQL用户user = mysql#全局地址bind_address= 0.0.0.0#MySQL安装目录basedir="C:/Program Files/MySQL/MySQL Server 5.7/"#MySQL数据目录datadir="E:/MySQL/Data/"#MySQL错误日志路径log_error="E:/MySQL/Data/mysql-error.log"#MySQL进程IDpid-file="E:/MySQL/Data/mysql.pid"#MySQL字符集character-set-server=utf8#操作系统在监听队列中所能保持的连接数back_log = 300#MySQL连接数的上限max_connections = 3000#每个客户端连接最大的错误允许数量max_connect_errors = 50#所有线程所打开表的数量table_open_cache = 4096#跳过外部锁定external-locking = FALSE#服务器发送和接受的最大包长度max_allowed_packet = 32M#独立的内存表所允许的最大容量max_heap_table_size = 128M#排序缓冲分配的内存大小sort_buffer_size = 16M#全联合发生时分配的内存大小join_buffer_size = 16M#线程缓存分配的大小thread_cache_size = 16#运行的线程的数量#thread_concurrency = 8#MySQL的查询缓冲大小query_cache_size = 128M#MySQL的查询缓冲最小值query_cache_limit = 4M#被全文检索索引的最小的字长ft_min_word_len = 8#当创建新表时作为默认使用的表类型default-storage-engine = InnoDB#线程使用的堆大小thread_stack = 512K#设定默认的事务隔离级别.可用的级别如下:#READ-UNCOMMITTED, READ-COMMITTED, REPEATABLE-READ, SERIALIZABLEtransaction_isolation = REPEATABLE-READ#服务器关闭交互式连接前等待活动的秒数interactive_timeout = 1000#服务器关闭非交互连接之前等待活动的秒数wait_timeout = 1000#内部(内存中)临时表的最大大小tmp_table_size = 128M#MySQL不区分大小写lower_case_table_names=1#禁用符号链接symbolic-links=0#禁用加密插件early-plugin-load=""#开启查询缓存explicit_defaults_for_timestamp=true#开启支持模示sql_mode='STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION'#显示兼容show_compatibility_56=on#开启日志时间戳为系统时间log_timestamps=system#跳过安全访问#skip-grant-tables#跳过安装路径secure-file-priv = NULL#SSL配置skip-ssl#禁用DNS解析#skip-name-resolve#不要监听网络#skip-networking#取消文件系统的外部锁#skip-locking # *** 慢查询参数 ***#慢查询设定的时间long_query_time = 6#启动慢查询日志slow_query_log#慢查询日志路径slow_query_log_file=slow.log#将所有没有使用带索引的查询语句全部写到慢查询日志中log_queries_not_using_indexes = 1#开启记录管理型慢SQLlog_slow_admin_statements = 1#保存查询的日志log_slow_slave_statements = 1#每分钟允许记录到slow log的且未使用索引的SQL语句次数log_throttle_queries_not_using_indexes = 10#最小检查行数限制min_examined_row_limit = 100 # *** 中继和状态日志参数 ***#二进制日志路径log-bin=mysql-bin#binlog日志格式binlog_format = MIXED #binlog记录SQL状态所持有的缓存大小binlog_cache_size = 4M#binlog使用的最大缓存内存大小max_binlog_cache_size = 512M#binlog日志大小max_binlog_size = 32M#binlog日志保留天数expire_logs_days = 7#主服信息记录库=表/文件#master_info_repository = TABLE#中继日志信息记录库#relay_log_info_repository = TABLE#同步主库日志信息#sync_binlog = 1#启用gtid类型,否则就是普通的复制架构#gtid_mode = on#强制GTID的一致性#enforce_gtid_consistency = 1#slave更新是否记入日志#log_slave_updates#中继日志信息名称#relay_log = relay.log#自动修复日志#relay_log_recovery = 1#默认开启简化的GTID 恢复#binlog_gtid_simple_recovery = 1#自动跳过错误信息slave_skip_errors = ddl_exist_errors # *** INNODB 相关选项 ***#INNODB的数据页大小innodb_page_size = 16K#缓存innodb表的索引,数据,插入数据时的缓冲innodb_buffer_pool_size = 256M#InnoDB缓存池被划分到一个区域innodb_buffer_pool_instances = 1#启动MySQL服务时,MySQL将本地热数据加载到InnoDB缓冲池中innodb_buffer_pool_load_at_startup = 1#停止MySQL服务时,InnoDB将InnoDB缓冲池中的热数据保存到本地硬盘innodb_buffer_pool_dump_at_shutdown = 1#事务等待获取资源等待的最长时间innodb_lock_wait_timeout = 5#使用单独的清除线程收回数据innodb_purge_threads = 1#单列索引限制innodb_large_prefix = 1#能否将死锁信息保存到日志中innodb_print_all_deadlocks = 1#INNODB排序缓冲分配的内存大小innodb_sort_buffer_size = 128K#InnoDB 将数据保存在一个或者多个数据文件中成为表空间.innodb_data_file_path = ibdata1:10M:autoextend#在InnoDb 核心内的允许线程数量.innodb_thread_concurrency = 16#日志写入日志文件在每次提交后,但是日志文件只有大约每秒才会刷新到磁盘上.innodb_flush_log_at_trx_commit = 1#用来缓冲日志数据的缓冲区的大小.innodb_log_buffer_size = 16M#在日志组中每个日志文件的大小.innodb_log_file_size = 512M#在日志组中的文件总数.innodb_log_files_in_group = 3#在InnoDB 缓冲池中最大允许的脏页面的比例.innodb_max_dirty_pages_pct = 90#事物回滚等待的时间innodb_lock_wait_timeout = 120#InnoDB是否需要将所有表的数据和索引存放在共享表空间里(innodb_file_per_table = OFF) #或者为每张表的数据单独放在一个.ibd文件(innodb_file_per_table = ON)innodb_file_per_table = on#转储每个bp instance LRU上最热的page的百分比innodb_buffer_pool_dump_pct = 40#多个page cleaner线程提高脏页刷新效率innodb_page_cleaners = 4#可以截断undo日志位于撤消表空间innodb_undo_log_truncate = 1#控制最大undo tablespace文件的大小innodb_max_undo_log_size = 2G#用于控制purge回滚段的频度innodb_purge_rseg_truncate_frequency = 128#不使用INNODB #skip-innodb # *** MyISAM 相关选项 ***#关键词缓冲的大小key_buffer_size = 128M#MyISAM表全表扫描的缓冲大小read_buffer_size = 8M#随机读取数据缓冲区使用内存read_rnd_buffer_size = 16M#MyISAM 使用特殊的类似树的cache来使得突发插入bulk_insert_buffer_size = 256M#到一个空表中引起重建索引时被分配.myisam_sort_buffer_size = 256M#MySQL重建索引时所允许的最大临时文件的大小myisam_max_sort_file_size = 10G#如果一个表拥有超过一个索引, MyISAM 可以通过并行排序使用超过一个线程去修复他们.myisam_repair_threads = 1#自动检查和修复没有适当关闭的 MyISAM 表.#myisam_recover#默认关闭Federatedskip-federated [mysqldump]#不要在将内存中的整个结果写入磁盘之前缓存quick#服务器发送和接受的最大包长度max_allowed_packet = 32M [mysql]#自动补全no-auto-rehash#MySQL字符集default-character-set=utf8 [myisamchk]#关键词缓冲的大小key_buffer = 16M#排序缓冲分配的内存大小sort_buffer_size = 16M#写入缓存的内存大小read_buffer = 8M#读取缓存的内存大小write_buffer = 8M [mysqld_safe]#增加每个进程的可打开文件数量.open-files-limit = 8192
3、停止MySQL
输入:net stop mysql
4、初始化MySQL数据
输入:
mysqld --initialize --user=mysql --character-set-server=utf8 --collation-server=utf8_general_ci --initialize-insecure
六、MySQL用户设置
1、创建danxiaonuo用户
mysql> CREATE USER 'danxiaonuo'@'%' IDENTIFIED BY '123456';
更新缓存
mysql> FLUSH PRIVILEGES;
2、全部权限授权danxiaonuo用户
mysql> GRANT ALL PRIVILEGES ON *.* TO 'danxiaonuo'@'%' WITH GRANT OPTION;
更新缓存
mysql> FLUSH PRIVILEGES;
3、更改danxiaonuo用户密码
mysql>ALTER USER 'danxiaonuo'@'%' IDENTIFIED BY '654321';
更新缓存
mysql> FLUSH PRIVILEGES;
4、删除danxiaonuo用户
mysql> DROP USER 'danxiaonuo'@'%';
更新缓存
mysql> FLUSH PRIVILEGES;
5、查看所有用户
mysql>SELECT HOST,USER FROM mysql.USER;
七、安装MySQL系统服务和卸载MySQL系统服务
1、安装MySQL系统服务
1>自动安装
输入:
mysqld -install
2>增加参数安装
mysqld -install MySQL --defaults-file="C:/Program Files/MySQL/MySQL Server 5.7/my.ini"
2、卸载MySQL系统服务
先停止MySQL系统服务
输入:net stop mysql
再卸载MySQL系统服务
输入:mysqld -remove
新闻热点
疑难解答
图片精选