安装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
参考文档
下载地址
创建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