MySQL的安装 (4,5,6可省略)
声明:CentOS版本为7.6,安装的MySQL版本为8.0.17
1. 首先要卸载掉本机自带的mysql相关,包括MariaDB。
rpm -pa | grep mysql #将搜到的结果使用`rm -rf 文件名` 删除掉,没有就跳过
rpm -pa | grep mariadb #将搜到的结果使用`rm -rf 文件名` 删除掉,没有就跳过
find / -name mysql #查找并删除相关文件夹,没有就跳过(同上)
find / -name mariadb #查找并删除相关文件夹,没有就跳过(同上)
2. 备份centOS的默认repo源,下载阿里云或者网易的repo源替换默认源。
mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup
cd /etc/yum.repos.d/
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
3. 清理yum,创建yum缓存。
sudo yum clean all
sudo yum makecache
4. 查看软件源仓库中mysql相关内容
yum repolist | grep mysql
5. 查看对应版本的mysql是否启用
cat /etc/yum.repos.d/mysql-community
6. 将需要安装的版本设置为启用状态(我这里安装的是mysql社区版8.0版本)
yum-config-manager --enable mysql80-comminity
7. 执行安装
yum install mysql-community-server.x86_64
8. 查看mysql运行状态,刚安装默认为未启动状态
# 查看MySQL服务运行状态,active表示已启动,inactive表示未启动,failed表示启动失败
systemctl status mysqld.service
# 启动MySQL服务
systemctl start mysqld.service
# 停止MySQL服务
systemctl stop mysqld.service
# 重新启动MySQL服务
systemctl restart mysqld.service
9. 查看初始密码
刚安装的新版本mysql会自动生成一个临时密码,保存在`/etc/log/mysqld.log`
cat /var/log/mysqld.log | grep "password"
10.使用初始密码登录
复制上一步的密码,输入`mysql -uroot -p密码`,或者先不输入密码按回车,在提示地方粘贴密码(密码不显示,粘贴一次就行了)。
11. 修改初始密码
show databases;
use mysql;
# 如将密码改成 NewPassword! ,为了安全尽量包含大小写字母数字加符号
alter 'user'@'localhost' identified by 'NewPassword!';
12. 修改访问权限,使其能远程连接
update user set Host='%' where User='root' and Host='localhost';
13. 刷新权限
flush privileges;
14. 新建用户
create user 用户名 identified by '密码';
# 比如创建用户同时指定可以访问的主机,以及指定其可以访问的数据库表和对应的权限
create user 用户名@'主机名' identified by '密码';
grant select, update, create, delete on 数据库名.表名 to 用户名;
15. 赋予权限,记得刷新权限才会生效
grant select on 数据库名.表名 to 用户; # 所有权限可以使用 all
flush privileges;
MySQL备份
备份:数据表结构+数据
mysqdump -u root db1 > db1.sql -p;
备份:数据表结构
mysqdump -u root -d db1 > db1.sql -p;
导入现有的数据到某个数据库
先创建一个新的数据库
create database db10;
将已有的数据库文件导入到db10数据库中
mysqdump -u root -d db10 < db1.sql -p;
==注意==
==如果数据库报错:==
==“Job for mysqld.service failed because the control process exited with error code. See "systemctl status mysqld.service" and "journalctl -xe" for details.”==
解决办法:
数据库初始化:
rm -rf /var/log/mysql.log
rm -rf /var/ib/mysql
本文结合自己实际操作中遇到的问题和在网络上搜集的解决方案而作,在此对各位提供了帮助的朋友表示感谢!