简单记录下在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!