zoukankan      html  css  js  c++  java
  • Windows下安装MySQL压缩zip包

    1. 下载

    https://cdn.mysql.com/archives/mysql-5.7/mysql-5.7.20-winx64.zip

    2. 解压到特定目录

    本例中解压到C:UserDefinedmysql-5.7.20-winx64

    3. 准备my.ini

    创建目录C:UserDefinedmysql-5.7.20-winx64conf,并在该目录下创建文件my.ini:

    [mysql]
    # 设置mysql客户端默认字符集
    default-character-set=utf8
    
    #[client]
    ## 设置mysql客户端连接服务端时默认使用的端口
    #port=3306
    #default-character-set=utf8
    
    [mysqld]
    # 设置3306端口
    port=3306
    # 设置mysql的安装目录
    basedir=C:\UserDefined\mysql-5.7.20-winx64
    # 设置mysql数据库的数据的存放目录
    datadir=C:\UserDefined\mysql-5.7.20-winx64\data
    # 允许最大连接数
    max_connections=200
    # 允许连接失败的次数。
    max_connect_errors=10
    # 服务端使用的字符集默认为UTF8
    character-set-server=utf8
    # 创建新表时将使用的默认存储引擎
    default-storage-engine=INNODB
    # 默认使用“mysql_native_password”插件认证
    #mysql_native_password
    default_authentication_plugin=mysql_native_password
    ##以下设置开启可以无密码登录mysql,通常用于密码设置及权限管理
    #skip-grant-tables

    4. 初始化并安装系统服务

    4.1 初始化

    C:UserDefinedmysql-5.7.20-winx64inmysqld.exe  --initialize  --defaults-file=C:UserDefinedmysql-5.7.20-winx64confmy.ini 

    注意:

    1. 使用 --initialize 是会随机生成一个mysql root账户的密码,在启动后,需要使用无密码模式进去,设置root密码,才可以使用;如果想查看随机生成的密码,可以在data目录下,用文本编辑软件(如记事本)打开*.err文件,即可看到随机生成的root密码

    2. 如果想生成空的root密码,可以使用模式 --initialize-insecure,此时会生成一个空的root密码,即无密码模式登录,客户端可以使用mysql -h 127.0.0.1 -uroot登录

    C:UserDefinedmysql-5.7.20-winx64inmysqld.exe  --initialize-insecure  --defaults-file=C:UserDefinedmysql-5.7.20-winx64confmy.ini 

    4.2 安装系统服务

    C:UserDefinedmysql-5.7.20-winx64inmysqld.exe   install  MYSQL5720 --defaults-file=C:UserDefinedmysql-5.7.20-winx64confmy.ini 

    其中注册的windows服务名称为MYSQL5720

    执行完成后,显示Service successfully installed.  则代表已经安装完成

     此时,打开windows服务列表,应该可以看到注册的windows服务

    如果想删除windows服务,可以用管理员身份打开cmd,并执行下面命令进行删除

    sc delete MYSQL5720

    如果想启动mysql windows服务,可以在命令行键入

    rem 启动mysql windows服务
    net start MYSQL5720
    rem 停止mysql windows服务
    net stop  MYSQL5720
    rem 删除mysql windows服务
    sc delete MYSQL5720

    5. 客户端登陆mysql

    5.1. 无密码模式登录

    如果使用的是--initialize 模式初始化的mysql,忘记了root的密码,此时需要用无密码模式登录mysql,并修改设置root的密码,方法为。

    5.1.1 修改my.ini

    在my.ini文件[mysqld]下面添加skip-grant-tables,然后重启mysqld windows服务

    5.1.2 mysql客户端登陆

    mysql -h 127.0.0.1 -uroot

    5.1.3 修改root密码

    ALTER USER 'root'@'localhost'IDENTIFIED BY 'root';
    ALTER USER 'root'@'localhost' PASSWORD EXPIRE NEVER;

    如果出现下面错误:

    mysql> ALTER USER 'root'@'localhost'IDENTIFIED BY 'root';
    ERROR 1290 (HY000): Unknown error 1290

    这是因为mysql正在MySQL正使用%s选项运行,因此不能执行该语句,要先执行

    flush privileges;

    注:

    也可使用下面方法来设置root用户的密码

    use mysql;
    update mysql.user set authtntication_string=password('root') where user='root'; 
    flush privileges;

    5.1.4 重置my.ini并重启mysql windows 服务

    修改my.ini,把skip-grant-tables注释掉,并重启mysql服务

    5.2 通过mysql客户端使用mysql服务

    在5.1 步骤做好之后,即可用过mysql客户端正常使用mysql服务了!!如果在5.1中是通过

    use mysql;
    update mysql.user set authtntication_string=password('root') where user='root'; 
    flush privileges;

    方式来设置root用户密码的,在客户端执行命令时都可能会遇到错误

    ERROR 1820 (HY000): Unknown error 1820

    该错误的含义是:ERROR 1820 (HY000): You must SET PASSWORD before executing this statement,即要先修改密码后才能正常使用数据库,此时修改一下root用户的密码即可,可通过下面sql中任意一条执行即可

    SET PASSWORD = PASSWORD('root');
    --ALTER USER 'root'@'localhost'IDENTIFIED BY 'root';
    ALTER USER 'root'@'localhost' PASSWORD EXPIRE NEVER;
    flush privileges;

    补充:
    mysql什么时候需要flush privileges?
    flush privileges 命令本质上的作用是将当前user和privilige表中的用户信息/权限设置从mysql库(MySQL数据库的内置库)中提取到内存里。MySQL用户数据和权限有修改后,希望在"不重启MySQL服务"的情况下直接生效,那么就需要执行这个命令。通常是在修改ROOT帐号的设置后,怕重启后无法再登录进来,那么直接flush之后就可以看权限设置是否生效。而不必冒太大风险。

    附:mysqld命令介绍

    mysqld --verbose --help 显示服务器选项和可配置变量一览

    从配置文件[mysqld][server]组读取信息

    -? //--help 查看简短帮助信息

    --ansi //使用标准ANSI,SQL语法

    -b //--basedir mysql安装目录

    --big-tables //保存大的结果集到临时文件

    --bind-address //服务器要监听的IP地址格式

    --binlog-format //ROW|STATEMENT|MIXED 二进制日志格式

    --character-sets-dirs //字符集安装目录

    --character-set-client-handshake //不忽略客户端发送的字符集信息 --skip-character-set-client-handshake

    --character-set-filesystem //字符集文件系统

    -C//--character-set-server 服务器字符集

    -r //--chroot mysqld运行前,运行chroot系统调用

    --collation-server //排序服务器字符集

    --console //写错误日志到console window平台

    --core-file //当mysql宕机时,写core文件 --core-file-size

    -h //--datadir 数据文件目录

    --default-storage-engine //默认存储引擎

    --default-time-zone //默认时区

    --defaults-extra-file //额外配置文件

    --defaults-file //默认配置文件

    --defaults-group-suffix //配置组名后缀

    --enable-named-pipe //启用命名管道 window平台

    --event-schedule //启动event功能

    --flush //刷新改变到磁盘

    --general-log //0|1 查询日志

    --initialize //创建数据文件目录和mysql系统数据库 产生随机root密码

    --initialize-insecure //创建数据文件目录和mysql系统数据库 产生空root密码

    --init-file //初始化后要执行的文件

    --install //安装mysqld作为window服务 自动启动

    --install-manual //安装mysqld作为window服务 手动启动

    --lc-message //错误消息的语言

    --lc-message-dir //错误消息的目录

    --local-service //启动mysqld的账号 window平台

    --log-error //写错误日志的文件名

    --log-output //FILE|TABLE|NONE 查询日志和慢查询日志的输出类型

    --log-raw // 日志记录完整的信息,包含密码

    --log-short-format //记录更少的信息到慢查询日志

    --log-tc //内存映射事务协调日志文件名

    --log-tc-size //内存映射事务协调日志文件大小

    --no-defaults //不读取配置文件

    --open-files-limit //打开文件的数量限制

    --pid-file //进程ID文件名

    --plugin-xxx //服务器插件

    --plugin-load //告诉服务器启动时加载的插件

    --plugin-load-add //告诉服务器启动时加载的插件

    --port //端口号

    --port-open-timeout //等待端口号可用时间

    --print-defaults //从配置文件读出的选项

    --remove //删除window服务

    --safe-user-create //除非有mysql.user表的insert权限,否则不可以创建用户

    --secure-file-priv //限制导入导出操作

    --shared-memory //在window平台,使用共享内存连接

    --shared-memory-base-name //共享内存名字

    --skip-event-scheduler //关闭事件触发功能

    --skip-grant-tables //服务器启动时跳过权限表

    --skip-host-cache //为了主机到IP转换,服务器执行DNS寻找

    --skip-name-resolve //当检查客户端连接时,不解析主机名

    --skip-networking //不监听TCP/IP连接

    --standalone //在window平台,不作为服务启动

    --skip-show-database //不允许SHOW DATABASES

    --slow-query-log //0|1 是否开启慢查询

    --slow-start-timeout //window服务开启的超时时间

    --socket //unix的socket文件

    --sql-mode //

    ALLOW_INVALID_DATES

    ANSI_QUOTES

    ERROR_FOR_DIVISION_BY_ZERO

    HIGH_NOT_PRECEDENCE

    IGNORE_SPACE

    NO_AUTO_CREATE_USER

    NO_AUTO_VALUE_ON_ZERO

    NO_BACKSLASH_ESCAPES

    NO_DIR_IN_CREATE

    NO_ENGINE_SUBSTITUTION

    NO_FIELD_OPTIONS

    NO_KEY_OPTIONS

    NO_TABLE_OPTIONS

    NO_UNSIGNED_SUBTRACTION

    NO_ZERO_DATE

    NO_ZERO_IN_DATE

    ONLY_FULL_GROUP_BY

    PAD_CHAR_TO_FULL_LENGTH

    PIPES_AS_CONCAT

    REAL_AS_FLOAT

    STRICT_ALL_TABLES

    STRICT_TRANS_TABLES

    --sysdate-is-now //返回sql开始执行的时间

    --transaction-isolation //

    READ-UNCOMMITTED

    READ-COMMITTED

    REPEATABLE-READ

    SERIALIZABLE

    --transaction-read-only //设置只读事物模式

    -t //--tmpdir 临时文件目录

    -u //--user 以某个系统用户启动服务器

    -v //--verbose 显示详细帮助

    -V //--version 显示版本

    全局变量

    通过SET命令设置

    autocommit //事务自动提交

    back_log //连接监听队列的大小

    default_password_lifetime //密码过期时间

    disconnect_on_expired_password //密码过期时的处理

    expire_logs_days //二进制日志的过期时间

    flush //每个sql执行后立即刷新结果到磁盘

    flush_time //刷新缓存时间

    foreign_key_checks //外键检查

    have_compress //是否可以使用 COMPRESS() and UNCOMPRESS()

    have_geometry //是否支持地理信息类型

    have_dynamic_loading //是否可以动态加载插件

    have_openssl //have_ssl 是否支持ssl连接

    have_profiling //是否可以显示sql语句执行时使用的资源

    have_statement_timeout //sql语句执行超时

    have_symlink //是否支持符号连接

    identity //last_insert_id 

    init_connect //客户端连接后默认执行的sql语句

    init_file //服务器开始后默认执行的sql文件

    insert_id //当插入自动增长列类型时,insert要使用的值

    interactive_timeout //交互式连接的超时时间

    internal_tmp_disk_storage_engine //临时表的存储引擎

    join_buffer_size //

    local_infile //是否可以运行LOAD_DATA_LOCAL

    lock_wait_timeout //锁超时时间

    locked_in_memory //是否把mysqld锁在内存

    log_timestamps //日志时区

    log_error_verbosity //是否显示更多信息到日志

    long_query_time //慢查询时间

    max_allow_packet //每个报文的最大大小

    max_connect_errors //最大不成功连接,到达后将阻塞

    max_connections //最大并发连接数

    max_digest_length //sql运行摘要的最大字节数

    max_error_count //被SHOW ERRORS和SHOW WARNINGS语句显示的最大数量

    max_execution_time //select语句的超时时间

    max_heap_table_size//用户创建的内存表的最大大小

    max_join_size//语句最大的行或行联合

    max_length_for_sort_data //决定使用filesort算法的索引值大小

    max_prepared_stmt_count //最大预编译语句数量

    max_relay_log_size//最大复制relay日志大小

    max_seeks_for_key //索引扫描的最大数

    max_sort_length //排序数据的字节数

    max_sp_recursion_depth//存储过程的递归深度

    max_user_connections//同时连接的mysql用户数

    max_write_lock_count//执行最大数量写锁后,可以执行待执行的读锁

    min_examined_row_limit//查询记录少于这个,不记录到慢查询日志

    net_buffer_length//连接和结果缓存的初始大小

    net_read_timeout //服务器读超时

    net_retry_timeout//服务器读写重试超时

    net_write_timeout//服务器写超时

  • 相关阅读:
    实现系统托盘
    MDI窗体应用
    C#窗体的常用设置
    什么是UWP应用
    关于用js写缓动 动画
    关于tab栏切换的解析
    函数
    for循环
    if语句
    js
  • 原文地址:https://www.cnblogs.com/lenmom/p/12001339.html
Copyright © 2011-2022 走看看