电脑上已安装过mysql数据库,想要再安装一个。
1.下载mysql安装包
直接找到mysql官网,在官网上下载zip安装包。
https://downloads.mysql.com/archives/community/
解压完成后是这个样子的(注意:解压完的文件放到一个合适的地方,不要乱放)
2.在mysql-5.7.38-winx64安装包中创建my.ini文件,创建data文件夹
[mysql] # 设置mysql客户端默认字符集
default-character-set=utf8 [mysqld]
#skip-grant-tables
#设置3310端口
port = 3310
#关闭ONLY_FULL_GROUP_BY
sql_mode = 'STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION'
# 设置mysql的安装目录
basedir=G:\Program Files\mysql-5.7.37-winx64 # 设置mysql数据库的数据的存放目录
datadir=G:\Program Files\mysql-5.7.37-winx64\data # 允许最大连接数
max_connections=200 # 服务端使用的字符集默认为8比特编码的latin1字符集
character-set-server=utf8 # 创建新表时将使用的默认存储引擎
default-storage-engine=INNODB
3.初始化mysql数据库
以管理员身份打开命令行
切换到mysql安装包的目录下
执行 mysqld --initialize
初始化, 然后发现data文件夹多了mysql的文件夹,也就意味着数据库正常生成了
4.安装服务
在mysql安装包目录下创建bat文件
@set mysql_service="G:\Program Files\mysql-5.7.37-winx64\bin\mysqld.exe"
::设置服务名
@set service_name="MYSQL57" ::安装服务
%mysql_service% --install %service_name% --defaults-file="G:\Program Files\mysql-5.7.37-winx64\my.ini" pause
然后以管理员身份运行【安装.bat】
安装成功后,在电脑服务中会有一个MYSQL57服务(注意,如果服务没有启动,需要手动启动一下服务)
5.修改root管理员密码和权限
修改my.ini文件,在[mysqld]节点中加上 skip-grant-tables参数
说明:skip-grant-tables参数的作用是,通过root用户登录数据库,不需要输入密码,直接绕过密码
改完配置后,记得需要重启一下mysql57服务
连接上mysql数据库,进行修改
G:\Program Files\mysql-5.7.37-winx64\bin>mysql -u root -p123456 -P 3310
mysql: [Warning] Using a password on the command line interface can be insecure.
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 8
Server version: 5.7.37 Copyright (c) 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> use mysql;
ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing this statement.
mysql> flush privileges;
ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing this statement.
mysql> SET PASSWORD = PASSWORD('123456');
Query OK, 0 rows affected, 1 warning (0.00 sec) mysql> ALTER USER 'root'@'localhost' PASSWORD EXPIRE NEVER;
Query OK, 0 rows affected (0.00 sec) mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec) mysql> quit
修改root用户的链接访问权限
G:\Program Files\mysql-5.7.37-winx64\bin>mysql -u root -p123456 -P 3310
mysql: [Warning] Using a password on the command line interface can be insecure.
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 9
Server version: 5.7.37 MySQL Community Server (GPL) Copyright (c) 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> use mysql;
Database changed
mysql> select host, user from user;
+-----------+---------------+
| host | user |
+-----------+---------------+
| localhost | mysql.session |
| localhost | mysql.sys |
| localhost | root |
+-----------+---------------+
3 rows in set (0.00 sec) mysql> update user set host = '%' where user = 'root' and host='localhost';
Query OK, 1 row affected (0.00 sec)
Rows matched: 1 Changed: 1 Warnings: 0 mysql> select host, user from user;
+-----------+---------------+
| host | user |
+-----------+---------------+
| % | root |
| localhost | mysql.session |
| localhost | mysql.sys |
+-----------+---------------+
3 rows in set (0.00 sec) mysql> quit
Bye