对于不同的操作系统,MySQL提供了相应的版本。在 Windows 操作系统下,MySQL 数据库的安装包分为图形化界面安装和免安装这两种安装包。这两种安装包的安装方式不同,配置方式也不同。图形化界面安装包有完整的安装向导,安装和配置很方便。免安装的安装包直接解压即可使用,但是配置起来不方便。
本节主要介绍了 MySQL 的下载和安装过程,用户可以根据自身的操作系统类型,从 MySQL 官方下载页面免费下载相应的服务器安装包。本教程以 mysql-8.0.28-winx64 为例介绍其在 Windows 10 操作系统下的安装和配置过程。
用户下载安装包的步骤如下,包括下载 Windows 图形化 MySQL 安装包、Windows 免安装 MySQL 安装包以及 Linux 操作系统的 MySQL 安装包。
步骤 1):打开 MySQL 官方网站(http://www.mysql.com),如图 1 所示。
步骤 2):滑到网页底部,点击 MySQL Community(GPL) Downloads,如图 2 所示。
步骤 3):点击 DOWNLOADS 列表下的 MySQL Community Server,如图 3 所示。
在下载页面中,选择 MySQL 的版本和操作系统,这里操作系统选择 Microsoft Windows,如下图所示。
这里的两个zip文件,Archive 是正式版的安装,而ZIP Archive, Debug Binaries & Test Suite 是测试版的安装。
有的版本还会有msi installer,zip archive和zip archive debug binaries&test suite三种选项,第一种msi是指的Windows installer开发出来的程序安装文件,它可以让你安装,修改,卸载你所安装的程序。说白了.msi就是Windows installer的数据包,把所有和安装文件相关的内容封装在一个包里。
zip一般在解压以后使用,需要配置一些东西,而msi是安装包,一步一步可以直接搞定。
步骤 4):点击 Download 后进入下载页面,该页面需要注册 MySQL 账户,也可不进行注册,直接下载,如图 5 所示。
注意:一般来说应当使用二进制分发版,因为该版本比其他的分发版使用起来更简单,不再需要其他工具来启动就可以运行 MySQL。
启动mysql:
1、设置环境变量
2、服务端初始化操作(mysqld)
PS C:softmysql-8.0.28-winx64in> mysqld --no-defaults --initialize
进行以上操作后,若是在新建的data文件夹中出现以下几个文件夹,则说明初始化完成。同时也创建了一个用户名“root”,且密码为空。
4:将MYSQL卸载、重装、初始化,最后开启MYSQL服务。
以管理员身份打开cmd
1 C:Windowssystem32>mysqld --romve //删除mysql服务
2 C:Windowssystem32>mysqld --install //安装mysql服务
3 C:Windowssystem32>mysqld --initialize //一定要初始化
4 C:Windowssystem32>net start mysql
中间折腾了两天,前面都OK,就是最后,“net start mysql”,无法启动。
从上面[ERROR],可以看出,不能找到文件。但是my.ini 文件是根据网上原封不动照搬过来的,怎么就错了呢?原来问题是出在my.ini文件中的文件路径隔离符“”,应该为“/”。问题解决!!!
[mysqld]
#端口号
port=3306
#设置mysql的安装目录
basedir=C:/soft/mysql-8.0.28-winx64
#设置mysql数据库的数据的存放目录
datadir=C:/soft/mysql-8.0.28-winx64/data
#允许最大连接数
max_connections=200
# 允许连接失败的次数。这是为了防止有人从该主机试图攻击数据库系统
max_connect_errors=10
# 服务端使用的字符集默认为8比特编码的latin1字符集
character-set-server=utf8
# 创建新表时将使用的默认存储引擎
default-storage-engine=INNODB
# 默认使用“mysql_native_password”插件认证
default_authentication_plugin=mysql_native_password
skip_ssl
default-time_zone='+8:00'
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
#日志输出为文件
log-output=FILE
# 是否开启sql执行结果记录,必须要设置general_log_file参数,日志的路径地址
# 即日志跟踪,1为开启,0为关闭
general-log=0
general_log_file="execute_sql_result.log"
#错误信息文件设置,会将错误信息放在data/mysql.err文件下
log-error=mysql.err
#skip_grant_tables
[mysql]
# 设置mysql客户端默认字符集
default-character-set=utf8
[client]
# 设置mysql客户端连接服务端时默认使用的端口
port=3306
default-character-set=utf8
修改root密码:
①首先打开cmd命令行,执行net stop mysql,把mysql服务先关掉;
②接着执行如下图所示的mysqld --skip-grant-tables命令;
由于mysqld –skip-grant-tables实测在mysql8.0中已失效,现使用mysqld --console --skip-grant-tables --shared-memory
此时就跳过了mysql的用户验证。注意输入此命令之后命令行就无法操作了,此时可以再打开一个新的命令行。请注意:在输入此命令之前先在任务管理器中结束mysqld.exe进程,确保mysql服务器端已结束运行再进行此操作。
③在新的命令行中输入:MySQL,即可在安全模式下启动启动mysql
输入show databases; 可以看到所有数据库说明成功登录。
其中mysql库就是保存用户名的地方。输入 use mysql; 选择mysql数据库。
输入select user,host,authentication_string from user; 来查看账户信息,注:5.7之后版本下的mysql数据库下已经没有password这个字段了,password字段改成了authentication_string
mysql> update user set password=password(“*******”) where user=“*******”; #修改密码报错 ERROR 1054 (42S22): Unknown column ‘password’ in ‘field list’
网上推荐:
mysql> update mysql.user set authentication_string=password(‘123456’) where user=‘root’; #修改密码成功
但是,实际仍无法执行。
新的修改密码方式:
1、use mysql;
2、alter user ‘root’@‘localhost’ identified with mysql_native_password by ‘********’;
3、flush privileges;
但是,直接 alter user ‘root’@‘localhost’ identified with mysql_native_password by ‘123456’;
报错。这时,借鉴https://blog.csdn.net/weixin_33842328/article/details/93565223
解决。
Query OK, 0 rows affected (0.01 sec)。查看user用户和密码,可以看到已经修改成功。
下面用root用户登录测试:
PS C:softmysql-8.0.28-winx64in> mysql -u root -p
Enter password: ******
Welcome to the MySQL monitor. Commands end with ; or g.
Your MySQL connection id is 8
Server version: 8.0.28 MySQL Community Server - GPL
Copyright © 2000, 2022, Oracle and/or its affiliates.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type ‘help;’ or ‘h’ for help. Type ‘c’ to clear the current input statement.
mysql> quit
Bye
PS C:softmysql-8.0.28-winx64in>