Skip to content

安装MySQL

MacOS

环境

使用MacPorts进行安装。

安装

bash
sudo port install mysql8-server

设置环境变量

bash
vim ~/.zprofile

写入

bash
export PATH="/opt/local/lib/mysql8/bin:$PATH"

修改配置文件

bash
sudo vim /opt/local/etc/mysql8/macports-default.cnf

删除最后一行的skip-networking

注:skip-networking表示关闭http连接方式,只使用sock连接,在此模式下无法通过端口连接数据库。

初始化+开启数据库服务

bash
sudo mysqld --initialize --user=_mysql
sudo port load mysql8-server
sudo mysql_secure_installation

Windows

参考文档

在 Windows 上采用ZIP压缩包安装 MySQL 8

下载地址

官方下载地址

创建my.ini文件

ini
[client]
port	= 3309
socket	= D:\Program OOTB\mysql8\mysql-8.0.32-winx64/data/mysqld.sock

[mysqld]
port = 3309
basedir = D:\Program OOTB\mysql8\mysql-8.0.32-winx64
datadir = D:\Program OOTB\mysql8\mysql-8.0.32-winx64/data
log-error = D:\Program OOTB\mysql8\mysql-8.0.32-winx64/data/error.log
pid-file =  D:\Program OOTB\mysql8\mysql-8.0.32-winx64/data/mysqld.pid

#若你的MySQL数据库主要运行在境外,请务必根据实际情况调整本参数
default_time_zone = "+8:00"

#设置client连接mysql时的字符集,防止乱码
init_connect ='SET NAMES utf8mb4'

#是否对sql语句大小写敏感,1表示不敏感
lower_case_table_names = 1

#事务隔离级别,默认为可重复读,mysql默认可重复读级别(此级别下可能参数很多间隙锁,影响性能)
transaction_isolation = READ-COMMITTED

#TIMESTAMP如果没有显示声明NOT NULL,允许NULL值
explicit_defaults_for_timestamp = true

#SQL数据包发送的大小,如果有BLOB对象建议修改成1G
max_allowed_packet = 128M

server-id = 110
#开启bin log 功能

log-bin=mysql-bin
#binlog 记录内容的方式,记录被操作的每一行
binlog_format = ROW

#对于binlog_format = ROW模式时,FULL模式可以用于误操作后的flashBack。
#如果设置为MINIMAL,则会减少记录日志的内容,只记录受影响的列,但对于部分update无法flashBack
binlog_row_image = FULL

#bin log日志保存的天数
#如果 binlog_expire_logs_seconds 选项也存在则 expire_logs_days 选项无效
#expire_logs_days 已经被标注为过期参数
#expire_logs_days = 7
binlog_expire_logs_seconds = 1209600

log_replica_updates
relay_log_recovery = 1
replica_skip_errors = ddl_exist_errors

#控制 redolog 写磁盘频率 默认为1
innodb_flush_log_at_trx_commit = 1
#控制 binlog 写磁盘频率
sync_binlog = 1

[mysqldump]
quick
max_allowed_packet = 128M

初始化+设置密码

bash
#无密码初始化
mysqld --initialize-insecure --console

#启动mysql
mysqld --console

#无密码登录
mysql -u root --skip-password

设置密码

sql
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'root123';
mysql> FLUSH PRIVILEGES;

设置新用户和数据库并给予权限

sql
mysql> CREATE DATABASE mytest;
mysql> CREATE USER 'mydev'@'%' IDENTIFIED BY 'mydev123';
mysql> grant all on mytest.* to 'mydev'@'%' with grant option;
mysql> FLUSH PRIVILEGES;

注册为windows服务

powershell
#注册为服务
mysqld --install mysql8

#启动命令(二选一)
sc start mysql8
net start mysql8

#删除服务(二选一)
sc delete mysql8
mysqld --remove

最后更新于:

未经许可禁止任何形式的转载