在电脑上搭建MySQL数据库服务器,核心路径是:先安装MySQL服务端程序,然后通过命令或客户端工具连接本机的0.0.1:3306地址,这个地址就是你自己的电脑,无需额外购买云服务器。
MySQL数据库安装教程:先从官方源下载与系统匹配的安装包
很多朋友搜“怎么在电脑安装mysql数据库服务器地址”,其实是把“服务端程序”和“连接地址”搞混了,你需要的是一套完整的MySQL数据库安装教程,安装包选错了,后面所有配置都会白费。
确定你的操作系统类型与版本
- 右键“此电脑”选“属性”,查看Windows版本是Win10还是Win11,是64位还是32位(目前主流全是64位)。
- Linux系统则执行
cat /etc/os-release查看发行版名称和版本号,比如CentOS 7.9或Ubuntu 22.04。
下载MySQL Community Server安装包
行业共识认为,免费版选择MySQL Community Server就够了,功能完全覆盖日常开发和中小型项目,下载时避开source code选项,选MSI Installer或通用的Linux二进制压缩包。
- Windows用户直接下载
.msi格式安装器,文件名类似mysql-installer-community-8.0.x.msi。 - Linux用户下载
.tar.gz格式的通用二进制包,例如mysql-8.0.36-linux-glibc2.17-x86_64.tar.xz。
安装过程中哪些选项必须勾选
用MSI安装器时,选择“Server only”即可,客户端工具后续单独装,注意安装类型里有一个“MySQL Server”和“MySQL Shell”的区别,Shell是命令行工具,Server才是数据库核心,安装路径建议保持默认的C:Program FilesMySQL,避免中文路径导致字符集问题。
MySQL本地数据库服务器地址怎么查:安装完成后用三个命令确认
装完软件后,很多人问“MySQL本地数据库服务器地址怎么查”,只要服务正常运行,本地地址永远是0.0.1或localhost,端口默认是3306,如果你改了自定义端口,才需要特意去核对。
验证MySQL服务是否已启动
- Windows下按
Win+R输入services.msc,找到MySQL80服务,确保状态为“正在运行”。 - Linux下执行
systemctl status mysqld,看到active (running)即表示正常。
用命令行直接查看监听地址和端口
打开终端(Windows用cmd或PowerShell),执行:
netstat -an | findstr 3306
或Linux执行:
ss -tlnp | grep mysql
输出中出现0.0.0:3306或::3306,说明MySQL正在所有网卡上监听,意味着不仅本机能连,局域网内其他电脑也能通过你的局域网IP访问,如果只显示0.0.1:3306,则仅限本机连接。
区分服务器地址和服务器IP
在你的电脑上安装MySQL,服务器地址就是0.0.1,但如果你想让另一台电脑连接你这台机器,对方要填的是你这台电脑的局域网IP,比如168.1.23,查看方法:Windows执行ipconfig,Linux执行ip addr,找到IPv4那一行。
Linux服务器配置MySQL密码和远程访问
如果你是在Linux服务器上安装MySQL,远程连接的需求会更频繁,业内专家指出,Linux下MySQL默认绑定0.0.1,必须改配置文件才能允许远程访问。
初始化数据库并获取临时密码
通用二进制包解压后,需要手动初始化:
cd /usr/local/mysql mkdir data chown -R mysql:mysql /usr/local/mysql bin/mysqld --initialize-insecure --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data
普通用户或云服务器新手常卡在权限这一步,务必加上--user=mysql,如果初始化日志里出现[ERROR],多半是libaio库缺失,Debian系执行apt install libaio1,RedHat系执行yum install libaio。
启动服务并修改初始密码
bin/mysqld --user=mysql &
然后用mysql -u root直接登录(因为用了--initialize-insecure,初始密码为空),登录后立刻修改:
ALTER USER 'root'@'localhost' IDENTIFIED BY '你的新密码'; FLUSH PRIVILEGES;
如果安装时用的是mysqld --initialize(不是insecure),则会在日志中生成临时密码,用grep 'temporary password' /var/log/mysql/error.log查看。
开放防火墙端口实现局域网连接
- 修改
/etc/my.cnf,在[mysqld]段落下注释掉bind-address=127.0.0.1,或改为bind-address=0.0.0.0。 - 重启服务:
systemctl restart mysqld。 - 放行端口:CentOS执行
firewall-cmd --permanent --add-port=3306/tcp && firewall-cmd --reload,Ubuntu执行ufw allow 3306/tcp。
注意,如果服务器是云厂商提供的,比如简米云或酷番云,还需要在安全组控制台额外放行3306入方向规则,否则系统防火墙开了也没用。
安装后必做的三项配置:字符集、开机自启、远程账号安全
这一步完成后,你的MySQL数据库服务器地址才真正可对外提供服务,很多教程只教到启动成功就结束了,但实际使用中,字符集错误和自启失败才是高频坑。
把默认字符集改成utf8mb4
MySQL 8.0默认字符集已经是utf8mb4,但如果是5.7版本迁移过来,需要核对。
[mysqld] character-set-server=utf8mb4 collation-server=utf8mb4_general_ci
修改后重启服务,执行SHOW VARIABLES LIKE 'character_set_server';确认。
安全设置远程账号
不要把root账户直接开放给远程,那样相当于把家门钥匙挂门口,创建一个专用账号:
CREATE USER 'app_user'@'192.168.%' IDENTIFIED BY '强密码'; GRANT SELECT, INSERT, UPDATE, DELETE ON mydb. TO 'app_user'@'192.168.%'; FLUSH PRIVILEGES;
其中'192.168.%'表示只允许192.168网段的IP连接,这是一种按需开放的授权策略。
连接验证的完整过程
使用MySQL自带的命令行客户端:
mysql -h 192.168.1.23 -P 3306 -u app_user -p
出现mysql>提示符后,说明从这台电脑到MySQL服务器地址之间的链路完全打通,如果提示Lost connection to MySQL server at 'reading initial communication packet',检查端口是否开放或skip-networking是否被开启。
图形化工具连接MySQL数据库服务器的操作路径
如果觉得用命令行太不直观,装上MySQL Workbench或者Navicat这类客户端,操作起来会更顺手,以Navicat为例,连接配置的填写要点如下。
新建连接时每一项怎么填
| 配置项 | 注意事项 | |
|---|---|---|
| 连接名 | 自定义名称 | 便于区分测试环境和生产环境 |
| 主机 | 0.0.1或局域网IP | 本机连接填localhost建议不行,部分工具解析localhost会走socket,填127.0.0.1更稳妥 |
| 端口 | 3306 | 如果改了port参数则相应调整 |
| 用户名 | root或专用账号 | 远程禁止用root |
| 密码 | 刚才设置的密码 | 保存后测试连接 |
测试失败的常见报错对照
- 1045 Access denied:用户名或密码拼写错误,或者账号的host限制不包含你当前IP。
- 2003 Can’t connect:服务没启动,或防火墙拦截了3306端口。
- 2059 Authentication plugin:MySQL 8.0默认认证插件是
caching_sha2_password,旧版客户端不支持,解决办法是改账号认证插件为mysql_native_password,但这样做有兼容性风险,建议直接升级客户端版本。
连接不上的排查步骤:按这个顺序检查不会乱
这个场景经常出现在“昨天能连,今天突然连不上”的情况下,按照下面顺序排查,效率最高。
先从自身电脑找问题
- 确认MySQL进程在运行:Windows看任务管理器服务列表,Linux用
ps -ef | grep mysqld。 - 确认端口没被占用:执行
netstat -ano | findstr 3306,如果端口被其他进程占用了,MySQL会启动失败。
再从网络链路找问题
- 检查防火墙:Windows专用网络防火墙有时会弹窗拦截,选“允许访问”即可。
- 检查路由器端口映射:如果要从公网访问家里电脑上的MySQL,需要在路由器后台做端口转发,但正常情况下建议不要这么做,因为MySQL协议未加密,暴露公网风险较高。
sudo mysql 进不去root怎么办
不少Linux新手执行mysql -u root -p时老是被拒绝,即使密码对了也没用,这种情况多为MySQL使用了auth_socket插件做认证,解决方法是:用sudo mysql进入后执行ALTER USER 'root'@'localhost' IDENTIFIED WITH caching_sha2_password BY '新密码';,把认证方式改回密码认证。
关于MySQL数据库服务器地址的常见问题
问:MySQL数据库服务器地址填什么才能让别人电脑访问?
答:别人要访问你电脑里的MySQL,填的是你电脑当前所在网络的IP,不是0.0.1,具体值在命令行执行ipconfig(Windows)或ip addr(Linux)查看,格式类似168.x.x,同时确保你的MySQL配置了远程访问权限,防火墙放行了3306端口。
问:安装MySQL后默认的服务器地址就是localhost吗?
答:MySQL安装后默认监听本机所有网络接口,localhost、0.0.1以及本机局域网IP都能连,如果你没改过配置,并且通过命令行登录时直接输mysql -u root -p,实际使用的就是Unix socket文件,绕过TCP/IP。
问:为什么我填了localhost却连不上MySQL?
答:某些客户端工具会把localhost解析为IPv6地址:1,而MySQL如果只绑定了IPv4的0.0.1,就会连接失败,这种场景下把主机名改为0.0.1通常能立即解决,前提是MySQL配置中的bind-address包含该IPv4地址。
首发原创文章,作者:王坚,如若转载,请注明出处:https://idctop.com/article/683613.html





