最近新入手一款2021 M1 Pro的MBP,将跟自己征战五年的2019 intel i5 MBP 说再见了。
据说intel到M1性能有巨大提升,终于要试试了。
首先用迁移助理把用户目录同步过去了,剩下的就是安装各种软件了。
其中MySQL数据对我来说还是挺有用的,200多个数据库呢,怎么快速迁移过去?
一、旧机器上mysqldump
旧机器是brew安装的5.6版本,端口3307
1、先将数据库名存下来
排除 mysql、information_schema、performance_schema、sys这几个数据库
mysql -u root -p -P 3307 -h 127.0.0.1 -e "SHOW DATABASES;" | grep -Ev "(Database|mysql|information_schema|performance_schema|sys)" > databases.txt
2、导出文件
mysqldump -u root -p -P 3307 -h 127.0.0.1 --databases $(cat databases.txt) > all_databases_backup.sql
大概450MB
通过投送到新电脑上,默认到下载目录
二、新机器安装MySQL8.0 - 官网下载安装(不推荐)
M1芯片,即Arm64架构的。
不要下载最新的8.4版本,安装会失败
我就下的8.0版本。
0、先下载安装包直接安装即可
然后待会儿修改配置,并重新初始化
也可以使用Homebrew安装
1、准备配置文件 my.cnf,可以放到 /etc下面
[client]
default-character-set=utf8
password = 123456
port = 3306
socket = /tmp/mysql.sock
[mysqld]
default-storage-engine=INNODB
character-set-server=utf8
collation-server=utf8_general_ci
port = 3306 # 我修改了默认端口
socket = /tmp/mysql.sock
lower_case_table_names = 1 # 是否对sql语句大小写敏感,1表示不敏感,即不区分大小写,如果无法启动就改成2
skip-external-locking
max_allowed_packet=64M
key_buffer_size = 16K
table_open_cache = 4
sort_buffer_size = 64K
read_buffer_size = 256K
read_rnd_buffer_size = 256K
net_buffer_length = 2K
thread_stack = 256K
server-id = 1
[mysqldump]
quick
max_allowed_packet=1600M
[mysql]
no-auto-rehash
[myisamchk]
key_buffer_size = 8M
sort_buffer_size = 8M
[mysqlhotcopy]
interactive-timeout
2、几个必要的配置
默认是没有配置文件的,咱们新建 my.cnf 也是为了方便以后要修改配置。
三、Homebrew安装mysql8.0(推荐)
安装后会自动配置环境变量,即可以直接使用 mysql 命令
如果因为配置了my.cnf导致无法启动,很可能原因是 lower_case_table_names = 1 配置问题,可以删除这行或者改成成2
具体可以看err文件
1、新建 my.cnf 同上
不新建也可以
附上最新的my.cnf
[client]
default-character-set=utf8
port = 3306
socket = /tmp/mysql.sock
[mysqld]
default-storage-engine=INNODB
character-set-server=utf8
collation-server=utf8_general_ci
port = 3306 # 确认端口设置一致
socket = /tmp/mysql.sock
lower_case_table_names = 2 # 是否对sql语句大小写敏感,1表示不敏感,即不区分大小写
skip-external-locking
max_allowed_packet=64M
# 增加缓冲区大小,以适应现代系统
key_buffer_size = 16M
table_open_cache = 200
sort_buffer_size = 2M
read_buffer_size = 2M
read_rnd_buffer_size = 2M
net_buffer_length = 16K
thread_stack = 192K
# MySQL 8.0 新增的或推荐的设置
innodb_buffer_pool_size = 128M # 根据系统内存适当调整
innodb_log_file_size = 64M
innodb_file_per_table = 1
innodb_flush_method = O_DIRECT
server-id = 1
[mysqldump]
quick
max_allowed_packet=1600M
[mysql]
no-auto-rehash
[myisamchk]
key_buffer_size = 16M # 增加缓冲区大小
sort_buffer_size = 2M
[mysqlhotcopy]
interactive-timeout
2、常用命令
安装命令:brew install mysql@8.0
启动命令:brew services restart mysql@8.0
data目录:/opt/homebrew/var/mysql
安装目录:/opt/homebrew/opt/mysql@8.0
查看安装信息:brew info mysql@8.0
3、设置密码
默认是没有密码
mysql -u root -p
直接回车
ALTER USER 'root'@'localhost' IDENTIFIED BY '123456';
FLUSH PRIVILEGES;
exit
四、导入sql数据
/usr/local/mysql-8.0.37-macos14-arm64/bin/mysql -u root -p < ~/Downloads/all_databases_backup.sql
或
mysql -u root -p < ~/Downloads/all_databases_backup.sql
中间可能出现一些报错,根据提示处理sql脚本
比如 ROW_FORMAT=COMPACT 替换为 ROW_FORMAT=DYNAMIC
删除一些行乱码内容,可以搜 0JFIF
经过九牛二虎努力终于成功!
您可以选择一种方式赞助本站
支付宝扫一扫赞助
微信钱包扫描赞助
赏