linux迁移mysql数据库,Linux 下安装MySQL并迁移备份

简单记录下在centOS上安装MySQL(MariaDB)的过程。

这里我并没有选择特定的MySQL版本,使用的是源默认提供的版本。

1. 执行安装命令:

执行如下指令安装MySQL数据库。

Shell

yum install -y mysql mysql-server

1

yuminstall-ymysqlmysql-server

注意这里同时安装了mysql和mysql-server。

在输出一长串信息后,期间可能会需要输入y表示确认,MySQL就安装好了。

安装结束后还需要手动启动MySQL。

2. 启动MySQL

执行如下指令启动MySQL。

Shell

systemctl start mysqld.service

1

systemctlstartmysqld.service

启动MySQL后会输出日志到/var/log/mysql/mysql.log。

在日志中可以看到下面这一句:

root@localhost is created with an empty password ! Please consider switching off the --initialize-insecure option.

1

root@localhostiscreatedwithanemptypassword!Pleaseconsiderswitchingoffthe--initialize-insecureoption.

日志提示mysql root用户的初始密码是空的。据说有的时候会生成一个随机密码写入到日志中,但这次安装明显不是这样的。

另外在日志中也可以看到mysql的版本是8.0.17:

/usr/libexec/mysqld: ready for connections. Version: '8.0.17'

1

/usr/libexec/mysqld:readyforconnections.Version:'8.0.17'

然后,执行如下指令,设置MySQL数据库开机启动

Shell

systemctl enable mysqld.service

1

systemctlenablemysqld.service

3. 设置root用户密码

执行如下命令设置root用户密码:

Shell

mysqladmin -u root password

1

mysqladmin-urootpassword

执行命令后会提示输入密码并确认。

4. 修改数据库时区

执行如下命令后输入密码进入MySQL数据库:

Shell

mysql -uroot -p

1

mysql-uroot-p

切换到目标数据库:

MySQL

use myDB;

1

usemyDB;

查看数据库时间:

MySQL

mysql> select current_timestamp;

+---------------------+

| current_timestamp |

+---------------------+

| 2020-03-15 04:07:57 |

+---------------------+

1 row in set (0.00 sec)

1

2

3

4

5

6

7

mysql>selectcurrent_timestamp;

+---------------------+

|current_timestamp|

+---------------------+

|2020-03-1504:07:57|

+---------------------+

1rowinset(0.00sec)

查看时区设置:

Shell

mysql> show variables like '%time_zone%';

+------------------+--------+

| Variable_name | Value |

+------------------+--------+

| system_time_zone | EDT |

| time_zone | SYSTEM |

+------------------+--------+

2 rows in set (0.00 sec)

1

2

3

4

5

6

7

8

mysql>showvariableslike'%time_zone%';

+------------------+--------+

|Variable_name|Value|

+------------------+--------+

|system_time_zone|EDT|

|time_zone|SYSTEM|

+------------------+--------+

2rowsinset(0.00sec)

system_time_zone 表示系统使用的时区是EDT即北美的东部夏令时(-4h)。

time_zone 表示 MySQL 采用的是系统的时区。

之前以为如果在安装MySQL就通过tzselect并在profile中修改了时区设置会起到作用,后来测试发现是无效的。 ╮(╯▽╰)╭

临时修改时区执行如下指令:

MySQL

-- 仅修改当前会话的时区,停止会话失效

set time_zone = '+8:00';

-- 修改全局的时区配置

set global time_zone = '+8:00';

flush privileges;

1

2

3

4

5

6

-- 仅修改当前会话的时区,停止会话失效

settime_zone='+8:00';

-- 修改全局的时区配置

set globaltime_zone='+8:00';

flushprivileges;

永久修改时区需要修改mysql配置文件。执行如下指令打开MySQL配置文件:

Shell

vim /etc/my.cnf.d/mysql-server.cnf

1

vim/etc/my.cnf.d/mysql-server.cnf

在条目[mysqld]下添加时区配置信息:

default-time_zone='+8:00'

1

default-time_zone='+8:00'

当然直接编辑/etc/my.cnf也不是不行,不过讲究点儿还是好的。

重启MySQL服务:

Shell

service mysqld restart

1

servicemysqldrestart

再看时间会看到时区修改成功。

5. 创建用户并授权

为MySQL数据库添加一个新用户zhyea,并将密码设置为zhyPass,指令如下:

MySQL

create user 'zhyea'@'127.0.0.1' identified by 'zhyPass';

1

create user'zhyea'@'127.0.0.1'identified by'zhyPass';

授予用户zhyea对数据库chobit的所有权限:

MySQL

grant all on chobit.* to 'zhyea'@'127.0.0.1';

1

grantallonchobit.*to'zhyea'@'127.0.0.1';

6. 数据备份

如需要执行数据迁移,先回到原数据库服务器上,进入MySQL命令行,执行如下命令完成数据备份:

Shell

mysqldump -uzhyea -pzhyPass chobit > /root/zhyea/zhy.sql

1

mysqldump-uzhyea-pzhyPasschobit>/root/zhyea/zhy.sql

用户为zhyea;密码为zhyPass;目标数据库 chobit。备份文件存储到了/root/zhyea/zhy.sql这个位置。

下载备份文件zhy.sql。

7. 数据迁移

将备份的sql文件 zhy.sql 挪到现服务器上。可以考虑使用rz指令上传数据文件,如未安装该工具可以用如下指令安装:

Shell

yum install -y lrzsz

1

yuminstall-ylrzsz

进入MySQL命令行,切换到目标数据库,执行如下命令完成数据迁移:

Shell

source /path-to-zhy/zhy.sql

1

source/path-to-zhy/zhy.sql

8. 删除已安装的版本

执行如下指令:

Shell

yum remove mysql*

1

yumremovemysql*

一切搞定。

End!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值