https://dev.mysql.com/downloads/mysql/
my.ini是mysql重要的配置文件,许多需要的配置都可以在这个文件中配置,默认如果没有该文件,则应该自己新建并且放置于解压后的主目录中如:
此处我设置数据库位置为指定位置,并且参照mysql手册中,目录中需要用斜杆或者\双斜杠,具体见下my.ini注意(其中有指定默认选项文件的方法),默认是utf8对于有微信表情有需要的则对应改为utf8mb4
[mysqld]
# 设置3306端口
port=3306
# 设置mysql的安装目录
basedir=E:/software/Mysql/mysql-8.0.16-winx64
# 设置mysql数据库的数据的存放目录
datadir=E:/software/Mysql/data
# 允许最大连接数
max_connections=200
# 允许连接失败的次数。这是为了防止有人从该主机试图攻击数据库系统
max_connect_errors=10
# 服务端使用的字符集默认为utf8mb4
character-set-server=utf8mb4
# 创建新表时将使用的默认存储引擎
default-storage-engine=INNODB
# 默认使用“mysql_native_password”插件认证
default_authentication_plugin=mysql_native_password
[mysql]
# 设置mysql客户端默认字符集
default-character-set=utf8mb4
[client]
# 设置mysql客户端连接服务端时默认使用的端口
port=3306
default-character-set=utf8mb4
进入到解压后的mysql主目录下的bin目录,使用cmd运行命令(最好使用管理员权限运行)–console参数打印出具体的内容
mysqld --initialize --console
安装服务,方便每次启动系统自动启动mysql服务,如果运行如下代码,并且显示
Service successfully installed.则安装成功,重复操作会提示已经安装,如果已经安装,并且需要重新配置启动服务参数,则可以使用mysqld --remove mysql(安装的服务名)删除服务并且重新执行install
mysqld install
net start mysql
#关闭服务
net stop mysql
使用命令登陆(必须先启动服务),输入以下代码后输入记录的随机密码,正常即可进入mysql
mysql -uroot -p
#输入密码后回车
登陆mysql后执行sql语句:,提示
alter user root@localhost identified by '新密码';
如下提示,则成功修改。下次登陆时使用新密码登陆。
alter user root@localhost identified by '新密码';
mysqld --init-file=d:/a.txt --console
此方法启动时不同以前的版本可用 mysqld-nl。mysql8中没有此文件
net stop mysql
mysqld --console --skip-grant-tables --shared-memory
UPDATE mysql.user SET authentication_string='' WHERE user='root' and host='localhost';
–skip-grant-tables官方解释:
此选项使服务器在不使用权限系统的情况下启动,这使得任何对服务器具有访问权限的人都可以无限制地访问所有数据库。通过从系统shell 执行mysqladmin flush-privileges或mysqladmin reload命令,或者FLUSH PRIVILEGES 在连接到服务器后发出MySQL 语句,可以使正在运行的服务器再次开始使用授权表。
如果使用–skip-grant-tables禁用身份验证检查的选项启动服务器 ,则服务器会–skip-networking自动启用 以防止远程连接。
此选项还会导致服务器在其启动过程中禁止加载随INSTALL PLUGIN语句一起安装的用户定义函数(UDF),计划事件和插件 。要使插件无论如何都要加载,请使用该 --plugin-load选项。 --skip-grant-tables也会导致disabled_storage_engines 系统变量无效。
此选项不会导致在服务器启动期间禁止加载服务器组件。
FLUSH PRIVILEGES可能由启动后执行的其他操作隐式执行(从而导致服务器再次开始使用授权表)。例如,mysql_upgrade在升级过程中刷新权限。
在正常启动时,服务器通过读取mysql.plugins系统表来确定要加载哪些插件。如果使用该–skip-grant-tables选项启动服务器 ,则不会查询该mysql.plugins表,也不会加载其中列出的插件。 --plugin-load即使–skip-grant-tables给出插件也可以加载插件 。 --plugin-load还可以在启动时加载无法在运行时加载的插件。
备注:mysql官网列出的常用的命令(mysql服务器命令选项)
可以使用任何文本编辑器(如记事本)创建和修改选项文件。例如,如果安装了MySQL E:\mysql并且数据目录位于 E:\mydata\data,则可以创建一个包含一个[mysqld]部分的选项文件,以指定basedir和 datadir选项的值:
[mysqld]
# set basedir to your installation path
basedir=E:/mysql
# set datadir to the location of your data directory
datadir=E:/mydata/data
使用(转发)斜杠而不是反斜杠在选项文件中指定Microsoft Windows路径名。如果你使用反斜杠,请将它们加倍:
[mysqld]
# set basedir to your installation path
basedir=E:\\mysql
# set datadir to the location of your data directory
datadir=E:\\mydata\\data
第4.2.2.2节“使用选项文件” 中给出了在选项文件值中使用反斜杠的规则。
4.2.2.3影响选项文件处理的命令行选项
大多数支持选项文件的MySQL程序都处理以下选项。由于这些选项会影响选项文件处理,因此必须在命令行中提供它们,而不是在选项文件中。要正常工作,必须在其他选项之前给出每个选项,但有以下例外:
将文件名指定为选项值时,请避免使用~shell元字符,因为它可能不会按预期解释。
mysql --login-path=mypath
默认情况下,mysql客户端读取 [client]和[mysql] 选项组。因此,对于所示的命令, MySQL的读取[client] 和[mysql]其他选项的文件,并 [client],[mysql]以及 [mypath]从登录路径文件。
即使使用该–no-defaults选项,客户端程序也会读取登录路径文件 。
要指定备用登录路径文件名,请设置 MYSQL_TEST_LOGIN_FILE环境变量。