【mysql】MySQL 5.7 参考手册—— 使用非安装版的 Zip 档案文件在 windows 上安装 MySQL

2.3.5  使用非安装版的 Zip 档案文件在 windows 上安装 MySQL

            原文详情参看 :Installing MySQL on Microsoft Windows Using a noinstall Zip Archive

            安装过程如下 :

                         ①   提取主档案文件到指定的安装目录

                                   可选:如果你打算执行MySQL的 benchmark 和 测试组件 也可以提取 debug-test 档案文件

                         ②  创建一个选项文件

                         ③  选择 MySQL 的 服务类型

                         ④  初始化 MySQL

                         ⑤  启动 MySQL 服务

                         ⑥  获得默认的用户账户

         2.3.5.1  提取主档案文件到指定的安装目录(即 下载非安装档文件

                      1.如果是更新 MySQL ,参看:   Section 2.3.8, “Upgrading MySQL on Windows”

                      2.保证以管理员的身份登入

                      3.选择一个安装位置

                      4.提取安装文档文件 : MySQL 官网 →  Downloads → Community → MySQL Community Server → 选择合适的 版本即可 。

         2.3.5.2 创建一个选项文件(即 自定义配置文件

                 

                   当你启动服务的时候如果需要指定启动选项,你可以 在命令行指定他们 或者 把他们放在一个选项文件中 。可以发现使用一个选项文件更方便。

                   当 MySQL 服务启动 时, 会在几个位置,例如 windows 目录的 C:\ 和 MySQL的安装目录(更多的位置,参看Section 5.2.6, “Using Option Files”)寻找选项文件 。MySQL 会在每个位置首先寻找 my.ini 文件 ,然户再寻找 my.cnf 文件,最好只使用一种文件。

                    你可以充分利用 包含在 MySQL 安装版本中包含的 样例 选项文件 。可参看 Section 6.1.2, “Server Configuration Defaults”.

                    ★ 例如我的免安装的版本中自带的  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.
# basedir = .....
# datadir = .....
# port = .....
# server_id = .....


# 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 


                 指定 basedir 和 datadir 的值 ,使用斜线 而不是 反斜线,如果使用反斜线,需要两条反斜线。

[mysqld]
# mysql 安装路径
basedir=E:/develop/mysql-5.7.14-winx64
# data 目录的位置
datadir=E:/develop/mysql-5.7.14-winx64/data

反斜线

[mysqld]
# mysql 安装路径
basedir=E:\\develop\\mysql-5.7.14-winx64
# data 目录的位置
datadir=E:\\develop\\mysql-5.7.14-winx64\\data

              ★ 自定义配置文件 my.ini ,防止中文乱码 

[client]
# 设置mysql客户端默认字符集

default-character-set=utf8 

[mysqld]

#设置3306端口

port = 3306 

# 设置mysql的安装目录

basedir=E:\develop\mysql-5.7.14-winx64

# 设置mysql数据库的数据的存放目录

datadir=E:\develop\mysql-5.7.14-winx64\data

# 允许最大连接数

max_connections=200

# 服务端使用的字符集默认为8比特编码的latin1字符集

character-set-server=utf8


# 创建新表时将使用的默认存储引擎

default-storage-engine=INNODB 



[mysql]
default-character-set=utf8


    要先关闭  mysql  服务然后修改配置,再重新开启服务,如果服务无法启动可能是因为配置有问题,需要修改 .修改完成后,使用如下命令查看编码是否都正常修改

show variables like 'character%';

显示如下结果则ok

+--------------------------+------------------------------------------------+
| Variable_name            | Value                                          |
+--------------------------+------------------------------------------------+
| character_set_client     | utf8                                           |
| character_set_connection | utf8                                           |
| character_set_database   | utf8                                           |
| character_set_filesystem | binary                                         |
| character_set_results    | utf8                                           |
| character_set_server     | utf8                                           |
| character_set_system     | utf8                                           |
| character_sets_dir       | E:\develop\mysql-5.7.14-winx64\share\charsets\ |
+--------------------------+------------------------------------------------+

 show variables like 'collation%';


显示如下结果则修改正常

+----------------------+-----------------+
| Variable_name        | Value           |
+----------------------+-----------------+
| collation_connection | utf8_general_ci |
| collation_database   | utf8_general_ci |
| collation_server     | utf8_general_ci |
+----------------------+-----------------+

                   MySQL 5.7.6 的 ZIP 档案文件不再包含 data 目录 ,这时候就需要创建 data 目录,导入 MySQL 系统数据库中的表 来初始化 MySQL 安装 。

在  MySQL 的 bin 目录下通过以下 cmd 命令 初始化 (区别在于前者会随机初始化密码 ,而后者密码为空):

mysqld --initialize

mysqld --initialize-insecure


执行完成便会自动生成  data 目录  。(详细参看: Section 2.10.1.1, “Initializing the Data Directory Manually Using mysqld”.)

                   初始化 data 目录之后,安装 mysql 服务(以管理员的身份运行 dos)

mysqld --install

                  

                  开启 mysql 服务

net start mysql


                  关闭 mysql 服务

net stop mysql


                  连接到 mysql 服务(bin 目录下)

mysql -u root -p


                  输入密码

                        ★ 若使用的是 mysqld --initialize-insecure 初始化的 data 目录 ,则密码为空,直接回车键即可登入,或者使用如下命令直接登入

mysql -u root --skip-password

                        ★ 若使用的是 mysqld --initialize  初始化的 data 目录 ,则需要输入 随机生成的初始化密码 (可以在 log 中查找初始化密码)。

                                       如果未找到初始密码,也可以使用以下方法进行密码重置  : windows下Mysql5.7.11修改初始密码
                                       当然也可以删除 data 目录,重新使用 mysqld --initialize-insecure 生成初始密码为空的 root账户。

                 连接 mysql 之后 ,修改 root 初始密码:

ALTER USER 'root'@'localhost' IDENTIFIED BY 'new_password';


i.e : 修改 root 用户 密码为 root

ALTER USER 'root'@'localhost' IDENTIFIED BY 'root';

flush privileges;

        

        2.3.5.3

         2.3.5.4 初始化 MySQL

 
                        见  2.3.5.2  。

         2.3.5.5 启动 MySQL 服务(在bin 目录下)


启动命令 :

mysqld


              然后打开另一个 cmd 窗口 进行登陆操作即可。

停止 Mysql 服务

mysqladmin -u root -p shutdown


然后输入密码即可 。

              把 Mysql 服务 作为 window 服务 安装

mysqld --install


               移除在 windows 中的服务

mysqld --remove

         2.3.5.6 获取默认用户

               见 2.3.5.2

另 :  Connector/J API  从 5.1 到 6.0 的 变化  ,参看官网: Changes in the Connector/J API

         以前 连接 mysql 需要使用反射加载 mysql驱动类,如下是往常的连接设置:

老的连接方法:

    @Test
    public void mysqlConnection() {
        Connection connection = null;
        PreparedStatement statement = null;
        try {
            Class.forName("com.mysql.jdbc.Driver"); 
            connection = DriverManager.getConnection("jdbc:mysql://localhost:3306/xlch", "root", "root");//参数分别代表 url 、userName 、password
            statement = connection.prepareStatement("select * from user where id = ?");
            statement.setInt(1, 1);//动态设置 id 为 1,index 为 1(起始为1)
            ResultSet set = statement.executeQuery();
            while (set.next()) {
                System.out.println("id===" + set.getInt("id") + "    name===" + set.getString(2));//可以通过 index 或者 labelName 获取
            }
        } catch (ClassNotFoundException e) {
            e.printStackTrace();
        } catch (SQLException e) {
            e.printStackTrace();
        } finally {
            if (statement != null) {
                try {
                    statement.close();
                } catch (SQLException e) {
                    e.printStackTrace();
                }
            }
            if (connection != null) {
                try {
                    connection.close();
                } catch (SQLException e) {
                    e.printStackTrace();
                }
            }
        }
    }

如果使用新版本的 mysql jar 包还使用如上的方法连接,则会有 2 个警告 和 1 个 异常:

com.mysql.jdbc.Driver driverClass  已经过时的警告,推荐使用新的com.mysql.cj.jdbc.Driver  ,而且现在 驱动可以自动注册,不再需要手动加载驱动。

② MySQL 5.5.45+, 5.6.26+ and 5.7.6+   关于 SSL 的警告 。

③ 服务器时区的 异常

综上,新版的 mysql 连接应如下配置:

  @Test
    public void mysqlConnection() {
        Connection connection = null;
        PreparedStatement statement = null;
        try {
            Class.forName("com.mysql.cj.jdbc.Driver"); // 可省略
            connection = DriverManager.getConnection("jdbc:mysql://localhost:3306/xlch?serverTimezone=UTC&useSSL=false", "root", "root");//参数分别代表 url 、userName 、password
            statement = connection.prepareStatement("select * from user where id = ?");
            statement.setInt(1, 1);//动态设置 id 为 1,index 为 1(起始为1)
            ResultSet set = statement.executeQuery();
            while (set.next()) {
                System.out.println("id===" + set.getInt("id") + "    name===" + set.getString(2));//可以通过 index 或者 labelName 获取
            }
        } catch (SQLException | ClassNotFoundException e) {
            e.printStackTrace();
        }  finally {
            if (statement != null) {
                try {
                    statement.close();
                } catch (SQLException e) {
                    e.printStackTrace();
                }
            }
            if (connection != null) {
                try {
                    connection.close();
                } catch (SQLException e) {
                    e.printStackTrace();
                }
            }
        }
    }

   

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值