Centos7 里安装 MySQL8
1, 去官网下载 linux 版 MySQL8
官网: https://dev.mysql.com/downloads/mysql/
2, 关闭 selinux
2.1 CentOS 系统默认是开启 selinux 的,需要关闭才能启动 mysql 服务
vi /etc/selinux/config
将 SELINUX=enforcing 改为 SELINUX=disabled 后存盘退出重启机器。
2.2 保存退出后, 重启 linux .
命令为
shutdown -r now
3, 卸载 mariadb 数据库
centos7 系统内默认安装了 mariadb 数据库与 mysql 是有冲突的,需要卸载
yum -y remove mariadb-libs
4,创建系统用户 mysql 用户
groupadd mysql
useradd -r -g mysql mysql
5, 上传 mysql 包,解压,改名
把 mysql-8.0.15-linux-glibc2.12-x86_64.tar.xz 安装包用工具 Xftp 导入到/usr/local 内
解压 mysql-8.0.15-linux-glibc2.12-x86_64.tar.xz 压缩包并改名叫 mysql
tar -xJvf mysql-8.0.15-linux-glibc2.12-x86_64.tar.xz
mv mysql-8.0.15-linux-glibc2.12-x86_64 mysql
6, 修改 mysql 目录的拥有者为 mysql
cd /usr/local/mysql
chown -R mysql:mysql ./
7, 创建 mysql 的配置文件
vi my.cnf
[mysqld]
port=3306
basedir=/usr/local/mysql
datadir=/usr/local/mysql/data
log-error=error.log
pid-file=/usr/local/mysql/mysqld.pid
default_authentication_plugin=mysql_native_password
socket=/tmp/mysql.sock
max_connections=200
max_connect_errors=10
character-set-server=UTF8MB4
default-storage-engine=INNODB
sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION
ft_min_word_len=1
ngram_token_size=2
default-time_zone='+8:00'
[mysql]
default-character-set=UTF8MB4
[client]
default-character-set=UTF8MB4
添加如下信息:把配置文件复制到/etc 目录内
cp my.cnf /etc/my.cnf
8,设置 mysql8 环境变量
8.1 打开环境变量配置文件
vi /etc/profile
8.2 添加两行代码
export MYSQL_HOME=/usr/local/mysql
export PATH=$PATH:$MYSQL_HOME/bin
8.3 按 ESC 键后输入 :wq 保存退出后,用命令让环境变量生效
source /etc/profile
9, 初始化 mysql
mysqld --initialize-insecure
初始化完毕后,mysql 是没有密码的,需要设置密码才行
10, 开机启动 mysql
把 support-files 目录内的 mysql.server 文件复制一份放到系统的开机初始化目录里
cp support-files/mysql.server /etc/init.d/mysql
chkconfig --add mysql
chkconfig mysql on
11, 启动 mysql 服务
chown -R mysql:mysql data #先把 data 的属主改为 mysql
service mysql start #启动 mysql 服务
12, 登录 mysql 客户端
因为 mysql 初始化时没有设置密码,所以登录时不需要密码
mysql -u root
13, 设置密码
alter user 'root'@'localhost' identified with mysql_native_password by 'root';
最后的红色 root 就是我设置的密码.命令的结尾一定要加一个分号”;”.
退出客户端后,用新设置的密码再次登录试试
exit
mysql -u root -p
至此 mysql安装完毕
14, 开放权限
MySQL 默认只允许通过 localhost 或者 127.0.0.1 访问,即不能通过 ip 进行远程访问,
如果允许其他人通过 ip 访问我的数据库,需要建立一个用户才行.
14.1, 登录 mysql 客户端后输入命令
create user 'yuancheng'@'%' identified with mysql_native_password by 'yuancheng';
14.2, 给用户授权
#授权所有权限
grant all privileges on *.* to 'yuancheng'@'%';
#或者 授权基本的查询修改权限,按需求设置
grant select,insert,update,delete,create,drop,alter on *.* to 'yuancheng'@'%';
14.3, 查看用户权限
show grants for 'yuancheng'@'%';
14.4, 删除授权,删除用户
revoke all on *.* from 'yuancheng'@'%'; #删除授权
drop user 'yuancheng'@'%'; #删除用户
15, 常用命令
show databases; 显示所有数据库
use ssm; 切换到 ssm 数据库
show tables; 显示数据库内所有表.
exit; 退出客户端
mysqldump -uroot -p 密码 --all-databases > all.sql 导出全部数据
mysqldump -uroot -p 密码 数据库名 > name.sql 导出指定数据库
mysql -uroot -p 密码 < all.sql 导入全部数据库mysql -uroot -p 密码 mrmf < mrmf.sql 还原指定数据库.
例如:我的密码也是 root, 我有一个数据库 acm.sql 需要还原,
第一步,先在 mysql 内创建数据库 acm
第二步,退出客户端后输入命令 mysql -uroot -proot acm<acm.sql
16, 远程连接
在 windows 环境 使用 Navicat 连接CentOS中的MySQL
16.1,创建连接
16.2,填写连接信息
连接的主机填写 CentOS 的 IP地址, 用户名密码为 创建的 可以远程连接的 yuancheng/yuancheng
16.3,测试连接
点击 左下角的 连接测试, 提示成功
点击确定,可以在左边菜单看到连接
打开连接可以看到4个默认的数据库