自学内容网 自学内容网

【环境搭建】MySQL安装部署

Win64安装MySQL

Windows的玩法比较少,没有像MAC一样给你提供mysqld-safe等等各种的启动脚本,只有手动启动或者是以服务启动Mysql。
点击下载:MySQL5.5-8.0.7z (密码是11)

1.下载软件

这一步下载好软件就可以了,下载地址:

  • MySQL :: Download MySQL Community Server
    • https://downloads.mysql.com/archives/community/
      记住一定要打开后面的Archives,里面的才有真正的压缩包下载(注意一下小版本,是8.0.34还是多少?两个不一样的话,整个bin文件夹里面的内容都是不一样的。)。
    • 选择正确的版本8.34

2.修改MySQL配置

  • 创建my.ini。是新建是新建!!!要自己新建
  • 配环境变量,很简单,配一下bin目录,能找到可执行命令就行。

3.初始化MySQL(注册成服务)

开启管理员CMD窗口

(1)切换到mysql的bin目录;
(2)执行mysqld --initialize命令,此时会生成一个新目录data,查看.err文件,打开可以看到root用户生成的随机密码;

# (1)使用管理员窗口CD到bin目录。执行完initialize之后会有默认的密码。默认密码放在点error文件里面。
cd 指定目录
mysqld –initialize-insecure

# (2)注册成服务。类似sc create 命令 需要管理员权限!(mysqld --install [new-db],new-db是名称。)
mysqld --install
net start mysql

# (3)进入客户端,修改登录密码为root。
mysql -u root -p
alter user 'root'@'localhost' identified with mysql_native_password by 'root';
命令说明
mysqld -remove移除自己的mysqld服务
net stop mysql停止mysql服务
sc delete xxx删除
  • 初始化命令
    • mysqld –initialize-insecure 自动生成无密码的root用户;
    • mysqld –initialize 自动生成带随机密码的root用户;

开启远程访问

当我们重新部署了一个MySQL服务后,发现在局域网内进行合作开发时却无法连接到指定数据库,这时候简单配置就可以解决连接问题:

1.三句话解决

USE mysql;
CREATE USER 'root'@'%' IDENTIFIED BY 'ROOT';
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION;
FLUSH PRIVILEGES;

# 说明:
# 创建一个新的数据库用户。在这里,它创建了一个用户名为 "root" 的用户,允许从任何主机 '%' 连接,并且设置了密码为 'ROOT'。
# 授予了用户 'root'@'%' 对所有数据库和所有表的所有权限(管理员级别)

2.检查效果

# 最后到user表check一下
SELECT User, Host FROM user;

mysql> SELECT User, Host FROM user;
+------------------+-----------+
| User             | Host      |
+------------------+-----------+
| root             | %         |
| mysql.infoschema | localhost |
| mysql.session    | localhost |
| mysql.sys        | localhost |
| root             | localhost |
+------------------+-----------+
5 rows in set (0.00 sec)

相关问题:https://stackoverflow.com/questions/50177216/how-to-grant-all-privileges-to-root-user-in-mysql-8-0

忘记MySQL密码

处理方法如下

  1. 窗口1:
    • 管理员打开cmd窗口输入命令:net stop mysql
    • 切到MySQL的bin目录
      • MySQL 8.0.x 版本推荐使用:mysqld --console --skip-grant-tables --shared-memory
      • 低版本MySQL数据库:
        • mysqld --skip-grant-tables
        • mysqld -nt --skip-grant-tables
  2. 窗口2:
    • flush privileges;
    • set password for root@localhost=‘root’:

同一台电脑,配置多个MySQL服务

核心诀窍就是同一个版本用同样的bin, Bat脚本里面写启动服务是用Bin里面的启动脚本启动(以达到共用脚本的目的),它的配置文件可以指向特定的配置文件,又通过特定的配置文件指向特定的data,从而达成隔离data文件的目的。

强烈推荐使用docker来构建不同的环境,比下面的方式更加灵活

1.Bat脚本

start D:\env\mysql_bin_8.0.35\mysqld.exe --defaults-file="D:\env\mysql_service1_data\my.ini"  --console

2.mysql配置文件(.ini)

[mysqld]
skip-log-bin
# 设置3306端口
port=3306
# 设置mysql的安装目录
basedir=D:\env\mysql_service1_data
#默认时区为东八区
default-time_zone = '+8:00'
# 允许最大连接数
max_connections=10000
# 允许连接失败的次数。
max_connect_errors=10
# 服务端使用的字符集默认为utf8mb4
character-set-server=utf8mb4
# 默认使用“mysql_native_password”插件认证
default_authentication_plugin=caching_sha2_password
# 信任目录,表示导出文件可以不仅仅导出到data文件夹中
secure_file_priv=''
[mysql]
# 设置mysql客户端默认字符集
default-character-set=utf8mb4
[client]
# 设置mysql客户端连接服务端时默认使用的端口
port=3306
default-character-set=utf8mb4
  • 注意这个BaseDir一定要填好,配置文件放在哪不重要。

原文地址:https://blog.csdn.net/weixin_43801418/article/details/142501467

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!