1.安装
1.1 centos mysql 5.7
CentOS 7的默认yum仓库中并没有MySQL5.7,我们需要手动添加,好在MySQL官方提供了仓库的地址,所以我们能够比较简单地安装MySQL。
本文我们将介绍CentOS 7下MySQL5.7的安装。
- 添加Mysql5.7仓库
sudo rpm -ivh https://dev.mysql.com/get/mysql57-community-release-el7-11.noarch.rpm
- 确认Mysql仓库成功添加
sudo yum repolist all | grep mysql | grep enabled
如果展示像下面,则表示成功添加仓库:
mysql-connectors-community/x86_64 MySQL Connectors Community enabled: 51
mysql-tools-community/x86_64 MySQL Tools Community enabled: 63
mysql57-community/x86_64 MySQL 5.7 Community Server enabled: 267
- 开始安装Mysql5.7
sudo yum -y install mysql-community-server
启动Mysql
- 启动
sudo systemctl start mysqld
- 设置系统启动时自动启动
sudo systemctl enable mysqld
- 查看启动状态
sudo systemctl status mysqld
Mysql的安全设置
CentOS上的root默认密码可以在文件/var/log/mysqld.log找到,通过下面命令可以打印出来
cat /var/log/mysqld.log | grep -i 'temporary password'
执行下面命令进行安全设置,这个命令会进行设置root密码设置,移除匿名用户,禁止root用户远程连接等
mysql_secure_installation
设置数据库编码为utf8
- 打开配置文件
sudo vim /etc/my.cnf
- 在[mysqld],[client],[mysql]节点下添加编码设置
[client] default-character-set=utf8 [mysql] default-character-set=utf8 [mysqld] collation-server = utf8_unicode_ci init-connect='SET NAMES utf8' character-set-server = utf8
- 重启Mysql即可
sudo systemctl restart mysqld
1.1.2 更改用户名和密码
1、修改 /etc/my.cnf
,在 [mysqld] 小节下添加一行:skip-grant-tables=1
这一行配置让 mysqld 启动时不对密码进行验证
2、重启 mysqld 服务:systemctl restart mysqld
3、使用 root 用户登录到 mysql:mysql -u root
注释:当看到密码输入时直接按return
添加新密码
1、切换到mysql数据库,更新 user 表:
use mysql
update user set authentication_string = password('新密码'), password_expired = 'N', password_last_changed = now() where user = 'root';
在之前的版本中,密码字段的字段名是 password,5.7版本改为了 authentication_string
恢复使用root密码
1、退出 mysql,编辑 /etc/my.cnf
文件,删除 skip-grant-tables=1 的内容
2、重启 mysqld 服务,再用新密码登录即可
2. 备份和恢复
备份方法
mysqldump -uroot -p000 db table > db.sql
还原方法
mysql -uroot -p000 < db.sql #直接恢复整个数据库
mysql -uroot -p000 db_tencent_health_data < t_doctor_20210607.sql #在这个数据库中建立这张表
参考:
1.拷备文件 : (保证数据库没有写操作(可以给表上锁定))直接拷贝文件不能移植到其它机器上,除非你正在拷贝的表使用MyISAM存储格式
2.mysqldump : mysqldump生成能够移植到其它机器的文本文件
例:
备份整个数据库 –> mysqldump db1 >/backup/db1.20060725
压缩备份 –> mysqldump db1 | gzip >/backup/db1.20060725
分表备份 –> mysqldump db1 tab1 tab2 >/backup/db1_tab1_tab2.sql
直接远程备份 –> mysqladmin -h boa.snake.net create db1
–> mysqldump db1 | mysql -h boa.snake.net db1
复制备份表 –> cp tab.* backup/
恢复
用最新的备份文件重装数据库。如果你用mysqldump产生的文件,将它作为mysql的输入。如果你用直接从数据库拷贝来的文件,将它们直接拷回数据库目录,然而,此时你需要在拷贝文件之前关闭数据库,然后重启它。