不同版本
MySQL有多个版本,包括开源社区版和商业版。下面是一些常见的 MySQL 版本:
-
MySQL Community Edition:这是免费的开源社区版,适用于大多数个人用户、小型团队或中小型项目。
-
MySQL Standard Edition:这是商业版中的一个版本,提供更多高级功能和支持选项,适用于中小型企业的生产环境。
-
MySQL Enterprise Edition:这是商业版的高级版本,提供额外的功能和工具,适用于大型企业以及对高级安全性、可扩展性和可靠性有严格要求的项目。
如何选择 MySQL 版本取决于您的具体需求和情况:
-
对于个人用户、学习或开发用途,MySQL Community Edition 是一个不错的选择,因为它是免费的,并且提供了大部分常用的功能。
-
对于中小型企业或项目,如果您需要额外的功能和技术支持,可以考虑使用 MySQL Standard Edition。它相对较便宜,并且提供了商业支持。
-
对于大型企业或对高级功能、安全性和支持有更高要求的项目,可以选择 MySQL Enterprise Edition。它提供了更多高级功能、增强的安全性和专业技术支持。
此外,还可以考虑当前的预算、团队技能水平、项目规模和可用硬件资源等因素。
总结来说,选择合适的 MySQL 版本应该根据您的需求、预算和支持要求进行评估。在选择之前,建议仔细研究每个版本的功能和许可条款,并与团队成员或专业顾问进行讨论。
官网下载
官网地址:https://dev.mysql.com/downloads/mysql/
可以选择版本和安装方式。 我们以5.7.43为例,选择解压安装的方式(MSI的方式只需要设置环境变量,不需要设置密码)。
解压后的文件路径为D:\mysql-5.7.43-winx64。
配置环境变量
添加环境变量
在path中添加环境变量
生成data文件内容
以管理员身份运行cmd(按win 输入cmd 右键 以管理员身份运行)
输入mysqld --initialize (注意mysqld后面一定要有空格,还有两条“-”,一定是两条,反正我用一条线不行)
这个命令执行后会在D:\MySoftware\mysql-8.0.13-winx64目录下创建一个data文件夹
新建my.ini文件
再D:\mysql-5.7.43-winx64中新建my.ini文件,写入下面内容。
注意basedir和datadir用自己的目录替换。
# CLIENT SECTION
# ----------------------------------------------------------------------
#
# The following options will be read by MySQL client applications.
# Note that only client applications shipped by MySQL are guaranteed
# to read this section. If you want your own MySQL client program to
# honor these values, you need to specify it as an option during the
# MySQL client library initialization.
#
[client]
#设置端口
port=3306
#设置mysql客户端默认字符集编码
default-character-set=utf8
[mysqld]
#设置端口
port=3306
#设置mysql客户端默认字符集编码
character_set_server=utf8
#设置mysql安装路径
basedir=D:\mysql-5.7.43-winx64
#设置mysql数据库的数据存放目录
datadir=D:\mysql-5.7.43-winx64\data
#允许最大连接数
max_connections=200
#创建新表时将使用默认存储引擎
default-storage-engine=INNODB#sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
#取消权限设置
#skip-grant-tables
[WinMySQLAdmin]
D:\mysql-5.7.43-winx64\bin\mysqld.exe
设置密码
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'abc.123456' WITH GRANT OPTION;
命令语句是用于授予 MySQL 数据库用户 'root' 在所有数据库上拥有全部权限,并设置密码为 'abc.123456',同时还允许该用户使用 GRANT OPTION 来授予其他用户权限。
这条命令的具体含义如下:
GRANT ALL PRIVILEGES
: 授予用户所有权限,包括数据库的创建、修改和删除等。ON *.*
: 表示在所有数据库上应用该权限。第一个*
表示所有数据库,第二个*
表示所有表。TO 'root'@'%'
: 将权限授予用户名为 'root',并且是从任何主机(%)连接的用户。IDENTIFIED BY 'abc.123456'
: 设置该用户的密码为 'abc.123456'。WITH GRANT OPTION
: 允许该用户使用 GRANT 命令来授予权限给其他用户。
可能遇到的问题:"ERROR 1290 (HY000): The MySQL server is running with the --skip-grant-tables option so it cannot execute this statement"
遇到这个错误时将my.ini中的“skip-grand-tables”注释放开,重启mysql,再进行设置。设置成功后,可以再将其注释掉。
允许远程访问
连接数据库,这里以默认用户名密码为例
mysql -u root -p
show databases;
use mysql ;
select user,host from user
update user set host = ‘%’ where user=‘root’;
flush privileges;//刷新权限
update user set host = ‘%’ where user=‘root’;
这条指令的作用是将 MySQL 数据库中用户 'root' 的 host
字段值修改为 %
。host
字段指定了允许连接到数据库服务器的主机地址。
通过将 host
字段设置为 %
,表示允许用户 'root' 从任何主机连接到 MySQL 数据库服务器。在默认情况下,MySQL 用户只能从本地主机进行连接,即 localhost
。但通过执行这个命令,用户 'root' 将可以从任意主机连接到数据库服务器。