【MySQL】#Windows下安装(压缩包、msi);Linux下安装(压缩包、命令、docker);设置连接
- 手机
- 2025-09-07 00:09:02

1.下载MySQL
进入MySQL官网,点击 DOWNLOADS,选择 “MySQL Community (GPL) Downloads »”
继续点击 “MySQL Community Server”
点击 “Archives”
选择合适版本、操作系统的文件进行下载
2.Windows-压缩包安装 2.1 下载安装包选择压缩包类型的文件,进行下载
2.2 安装配置将压缩包解压到想放置的位置(避免中文路径)
在解压目录下,新建 my.ini 文件
文件内容(根据需要自定义):
[mysqld] # 设置3306端口 port=3306 # 设置mysql的安装目录(就是解压的目录) basedir=D:\\mysql-8.4.2-winx64 # 设置mysql数据库的数据存放目录,该文件夹会自行创建,不要自己手动创建 datadir= D:\\mysql-8.4.2-winx64\Data # 允许最大连接数 max_connections=200 # 允许连接失败的次数。 max_connect_errors=10 # 服务端使用的字符集默认为utf8mb4 character-set-server=utf8mb4 # 创建新表时将使用的默认存储引擎 default-storage-engine=INNODB # 默认使用“mysql_native_password”插件认证 authentication_policy=mysql_native_password #配置服务器的服务号,具备日后需要集群做准备 server-id=1 #开启MySQL数据库的二进制日志,用于记录用户对数据库的操作SQL语句,具备日后需要集群做准备 log-bin=mysql-bin #设置清理超过30天的日志,以免日志堆积造过多成服务器内存爆满。2592000秒等于30天的秒数 binlog_expire_logs_seconds=2592000 #解决MySQL8.0版本GROUP BY问题 sql_mode='STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION' # 禁用符号链接以防止各种安全风险 symbolic-links=0 # 设置东八区时区 default-time_zone='+8:00' [mysql] # 设置mysql客户端默认字符集 default-character-set=utf8mb4 [client] # 设置mysql客户端连接服务端时默认使用的端口 port=3306 default-character-set=utf8mb4以管理员身份运行cmd,初始化MySQL
进入解压目录所在位置下的bin目录(Windows切换盘符:直接输入盘符即可,如 d:)
在bin目录下执行初始化命令,然后复制初始化后的 root密码(不包含首位空格)
mysqld --initialize --console继续执行以下命令,安装 MySQL服务并启动
# 安装 MySQL服务 mysqld --install # 启动 MySQL服务 net start mysql连接 MySQL
mysql -uroot -p连接到MySQL后,根据个人需求,选择是否修改初始密码
ALTER USER 'root'@'localhost' IDENTIFIED BY '新密码';也可选择创建远程登录用户,配置权限等,详见另一篇博客
3.Windows-msi安装 3.1 下载msi文件选择 msi类型的文件,进行下载
3.2 安装配置下载完成后,双击软件进行安装
同意许可文件,下一步
选择 "custom"自定义安装
更改安装位置,下一步点击 install进行安装
安装完成,进行配置
进入配置界面,下一步
更改数据存储位置,下一步
选择配置类型,建议服务器上选择 “Server Computer”,下一步
设置 root密码,下一步
继续下一步
授予全部权限,下一步
不构建示例数据库,直接下一步
点击 "Execute"进行最终配置安装,等待全部打勾,即可安装完成
安装完成后,可连接数据库,选择创建远程登录用户,配置权限等,详见另一篇博客
4.Linux-压缩包安装 4.1 查看glibc版本 rpm -qa | grep glibc 4.2 下载安装包根据 glibc版本下载对应的 mysql文件
4.3 上传到服务器并解压将文件上传到服务器,并解压到指定位置,此处使用 /usr/local目录
# 在压缩包所在目录,进行解压,解压到 /usr/local目录 tar -xvJf mysql-8.4.2-linux-glibc2.17-x86_64.tar.xz -C /usr/local/ # 重命名文件夹 mv /usr/local/mysql-8.4.2-linux-glibc2.17-x86_64/ /usr/local/mysql-8.4.2 4.4 安装配置查看 mysql用户组及用户是否存在,若不存在,进行新增
# 查看用户组是否存在。 存在则显示 mysql : mysql groups mysql # 新增用户组 groupadd mysql # 新增用户 useradd -r -g mysql mysql更改文件夹的所有者及所属组
chown -R mysql:mysql /usr/local/mysql-8.4.2 # 若不更改,可能会有奇奇怪怪的问题修改 /etc/my f 配置文件(根据需要 自定义)
[mysqld] basedir=/usr/local/mysql-8.4.2 max_connections=200 port=3306 character-set-server=utf8mb4 authentication_policy=mysql_native_password server-id=1 log-bin=mysql-bin binlog_expire_logs_seconds=2592000 sql_mode='STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION' symbolic-links=0 default-time_zone='+8:00' # 数据存储位置(============= 此处需要自己创建 data目录,避免权限不足 ===========) datadir=/usr/local/mysql-8.4.2/data # 设置大小写是否敏感 # 0-表名存储为给定的大小写 使用时区分大小写(unix,linux下默认为此值) # 1-表名存储为小写 使用时不区分大小写(Windows下默认) # 2-表名存储为给定的大小写 使用时是小写(Mac OS X下默认) lower_case_table_names=1 # 日志相关文件位置 socket=/tmp/mysql.sock log-error=/usr/local/mysql-8.4.2/data/mysql.log pid-file=/usr/local/mysql-8.4.2/data/mysql.pid [mysql] # 设置mysql客户端默认字符集 default-character-set=utf8mb4手动创建 data目录(避免权限不足)
# 在 /usr/local/mysql-8.4.2目录下,创建 data目录 mkdir data初始化MySQL
# 在 /usr/local/mysql-8.4.2目录下执行 ./bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql-8.4.2/ --datadir=/usr/local/mysql-8.4.2/data/ # 执行结束后,会展示 root的临时密码,可以记住此处若报错:error while loading shared libraries: libaio.so.1: cannot open shared object file: No such file or directory
需要安装libaio
# 查看是否安装了 libaio rpm -qa|grep libaio # 若上述指令无输出,则需安装 libaio sudo yum install -y libaio # 安装完成后,重新执行初始化命令配置环境变量
# 编辑配置文件 vim /etc/profile # =============== 在文件最后 添加以下内容 ============== export MYSQL_HOME="/usr/local/mysql-8.4.2" export PATH="$PATH:$MYSQL_HOME/bin" # 刷新配置文件,立即生效 source /etc/profile启动服务
service mysql start如果启动时报错:Redirecting to /bin/systemctl restart mysql.service Failed to restart mysql.service: Unit
检查服务是否存在
ll /etc/init.d/ | grep mysql若上述指令无任何返回,则需要复制相应文件
# 复制 mysql-8.4.2文件夹下 support-files文件夹中的文件 cp /usr/local/mysql-8.4.2/support-files/mysql.server /etc/init.d/mysql再次进行启动
service mysql start若启动时报错:ERROR! The server quit without updating PID file。 大概率是因为通过 root用户部署(没更改文件夹的所有者及所属组导致的)
需要修改 mysql.server文件的内容
vim /etc/init.d/mysql在 266行左右,找到 $bindir/mysqld_safe,加上 --user=root 参数
再次进行启动
service mysql start登录MySQL
mysql -u root -p 密码 # 若未记住初始化时的密码,可以通过 mysql.log文件查看(目录位置在 /etc/my f文件中配置的)安装完成后,可连接数据库,选择创建远程登录用户,配置权限等,详见另一篇博客
5. Linux-命令安装此处以centos为例。
5.1 添加yum仓库 # 确保系统是最新的 sudo yum update -y # 下载并安装 MySQL的Yum仓库 sudo yum install -y dev.mysql /get/mysql80-community-release-el7-3.noarch.rpm # 若之前通过该方式安装过 MySQL5.7,需要先移除仓库设置 # sudo yum remove mysql57-community-release 5.2 安装配置编辑配置文件 /etc/my f
[mysqld] datadir=/usr/local/mysql/data # 注意:data目录需要自己创建!!! max_connections=200 port=3306 character-set-server=utf8mb4 lower_case_table_names=1 log-error=/usr/local/mysql/data/mysql.log pid-file=/usr/local/mysql/data/mysql.pid authentication_policy=mysql_native_password server-id=1 log-bin=mysql-bin binlog_expire_logs_seconds=2592000 sql_mode='STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION' symbolic-links=0 default-time_zone='+8:00' socket=/var/lib/mysql/mysql.sock # 写其他地址好像会导致MySQL无法启动 plugin_dir=/usr/lib64/mysql/plugin # 设置插件的目录 [mysql] default-character-set=utf8mb4执行安装
sudo yum install -y mysql-community-server # 若报错 "GPG Keys are configured as: file:///etc/pki/rpm-gpg/RPM-GPG-KEY-mysql"相关内容 # 可以临时跳过GPG检查 sudo yum install -y mysql-community-server --nogpgcheck启动服务
# 设置开机自启 sudo systemctl enable mysqld # 启动MySQL sudo systemctl start mysqld获取root临时密码
grep 'temporary password' /usr/local/mysql/data/mysql.log # 文件的位置在 my f中配置安装完成后,可连接数据库,选择创建远程登录用户,配置权限等,详见另一篇博客
6. Linux-docker安装 6.1 拉取镜像 docker pull mysql # 默认拉取最新版(latest),也可指定版本若报错,可参考另一篇博客中的4.1章节
6.2 创建本地目录在Linux服务器上,创建用于存放 MySQL 配置文件和数据的目录
mkdir -p /etc/docker/mysql/{conf,logs,data} # 可根据磁盘空间,自定义位置 6.3 创建配置文件在 /etc/docker/mysql/conf目录下,创建 my f文件
[mysqld] max_connections=200 port=3306 character-set-server=utf8mb4 lower_case_table_names=1 authentication_policy=mysql_native_password server-id=1 log-bin=mysql-bin binlog_expire_logs_seconds=2592000 sql_mode='STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION' symbolic-links=0 default-time_zone='+8:00' [mysql] default-character-set=utf8mb4 6.4 启动容器 docker run -d \ --restart=always \ --name mysql-demo \ # 可自定义容器名称 -v /etc/docker/mysql/conf:/etc/mysql/conf.d \ # 将容器中的 /etc/mysql/conf.d目录映射到服务器上的 /etc/docker/mysql/conf目录 -v /etc/docker/mysql/data:/var/lib/mysql \ # data目录 -v /etc/docker/mysql/logs:/var/log \ # 日志目录 -e MYSQL_ROOT_PASSWORD=自定义root密码 \ -p 3306:3306 \ mysql # ================ 简洁版命令 =============== docker run -d \ --restart=always \ --name mysql-prod \ -v /etc/docker/mysql/conf:/etc/mysql/conf.d \ -v /etc/docker/mysql/data:/var/lib/mysql \ -v /etc/docker/mysql/logs:/var/log \ -e MYSQL_ROOT_PASSWORD=123456 \ -p 3306:3306 \ mysql【MySQL】#Windows下安装(压缩包、msi);Linux下安装(压缩包、命令、docker);设置连接由讯客互联手机栏目发布,感谢您对讯客互联的认可,以及对我们原创作品以及文章的青睐,非常欢迎各位朋友分享到个人网站或者朋友圈,但转载请说明文章出处“【MySQL】#Windows下安装(压缩包、msi);Linux下安装(压缩包、命令、docker);设置连接”