1检查
1、首先检查自己电脑有没有安装过mysql,输入如下
rpm -qa | grep mysql
如果有则清理干净在安装,输入
whereis mysql
2 将自带的mysql卸载
rpm -e --nodeps mysql全名
3、然后检查你系统是否自带mariadb,输入如下检查。
rpm -qa | grep mariadb
4、如果有则需要把它卸载掉,因为会和Mysql引起冲突,输入如下卸载掉。
rpm -e --nodeps mariadb-libs
2开始下载
https://dev.mysql.com/downloads/mysql/
这里选择了linux通用版 Linux - Generic(glibc 2.12)
rpm版:要选择小红帽版 Red Hat .......
这是win版 Microsoft Windows
小红帽 RPM方式
2 安装5.7版本(通用版 tar.gz) 暂时不要
2.1 上传 mysql-5.7.40-linux-glibc2.12-x86_64.tar.gz
2.2解压 usr/local/
tar -zxvf mysql-5.7.40-linux-glibc2.12-x86_64.tar.gz -C /usr/local/
2.3 改名
mv mysql-5.7.40-linux-glibc2.12-x86_64 mysql5.7
Centos7安装Mysql5.7_Nobody216的博客-CSDN博客_centos7安装mysql5.7
3 安装 rpm版
3.1 安装依赖
yum -y install make gcc-c++ cmake bison-devel ncurses-devel libaio libaio-devel
3.2上传的文件夹
cd /usr/local/data
3.3 直接解压当前目录即可,让npm自己安装去
tar xvf mysql-5.7.40-1.el7.x86_64.rpm-bundle.tar
3.4 解压完直接让rpm自动安装即可 一定按照下面顺序安装有依赖关系
rpm -ivh mysql-community-libs-compat-5.7.40-1.el7.x86_64.rpm --nodeps
rpm -ivh mysql-community-common-5.7.40-1.el7.x86_64.rpm --nodeps
rpm -ivh mysql-community-libs-5.7.40-1.el7.x86_64.rpm --nodeps
rpm -ivh mysql-community-client-5.7.40-1.el7.x86_64.rpm --nodeps
rpm -ivh mysql-community-server-5.7.40-1.el7.x86_64.rpm --nodeps
3.5 查看安装情况
rpm -qa | grep mysql
一定是全的
3.6 启动mysql
systemctl start mysqld.service
3.7 查看是否启动成功()
journalctl -xe
3.8 查看初始密码
cat /var/log/mysqld.log | grep password
3.9 root用户登录mysql
mysql -uroot -p
3.10 重置密码
SHOW variables LIKE 'validate_password%';
报错
退出客户端
exit
配置文件
vim /etc/my.cnf
[mysqld] 下 增加这两行配置 解决(1820问题)
[mysqld]
#添加密码验证插件
plugin-load-add=validate_password.so
#服务器在启动时加载插件,并防止在服务器运行时删除插件
validate-password=FORCE_PLUS_PERMANENT
重启mysql
systemctl restart mysqld
重新登录mysql
mysql -uroot -p
修改验证策略为low
set global validate_password_policy=0;
修改密码最短长度为1
set global validate_password_length=1;
设置新的密码为123456
alter user 'root'@'localhost' identified by '123456';
查看默认编码(很多默认是拉丁文,配置文件改下面有)
show variables like '%character%';
设置mysql远程连接权限 (真实服务器不用设置root为远程访问,默认就是只能本地访问)
show databases;
# 进入mysql数据库
use mysql;
#查询用户和地址
select user,host from user;
# %为任意访问地址 ,修改用户和地址
update user set host = '%' where user = 'root';
# 刷新权限 权限更新后刷新才会起作用
flush privileges;
设置完重新登录验证
编辑配置文件
vim /etc/my.cnf
设置编码(默认可能是拉丁)
[mysqld]
character-set-server=utf8mb4
#忽略表名大小写 user表=USER表
lower_case_table_names=1
[client]
default-character-set=utf8mb4
[mysql]
default-character-set=utf8mb4
重启
systemctl restart mysqld
设置开机自启动
vim /etc/rc.local
添加下面配置
service mysqld start
兼容mysql5.6分组报错
先查询出来
show variables like '%sql_mode';
将ONLY_FULL_GROUP_BY 剔除掉重新设置即可(但是之前创建表不起作用,还是要去配置文件设置)
set sql_mode='STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION';
创建用户并授权
降低密码强度(不建议使用,123456这种密码 是不行的)
SELECT @@VALIDATE_PASSWORD_POLICY;
set global validate_password_policy = 0;
创建用户张三 只能本地登录和访问
create user 'zhangsan'@'localhost' identified by '123456';
设置远程访问 %远程
create user 'zhangsan'@'%' identified by '123456';
刷新一下
flush privileges;
授权
查询root用户权限信息:
SHOW GRANTS FOR 'root';
权限只会增,永远用最大权限,所以一定也要删除某些权限
删除某个权限 GRANT变 revoke , TO 变 from
赋予最大权限 和root一样了
GRANT ALL PRIVILEGES ON *.* TO 'zhangsan'@'%'
删除上面的权限
revoke ALL PRIVILEGES ON *.* FROM 'zhangsan'@'%';
最大权限 (这俩都行)
grant ALL ON *.* TO 'zhangsan'@'%';
GRANT ALL PRIVILEGES ON *.* TO 'zhangsan'@'%'
只允许本地 (本机访问 且 只能创建库名 叫 “ku”的数据库)
grant all privileges on ku.* to 'zhangsan'@'localhost';
允许远程 (远程访问 且 只能创建库名 叫 “ku”的数据库)
grant all privileges on ku.* to 'zhangsan'@'%';
grant all privileges on 库名.表名 to '用户名'@'IP地址';
刷新
flush privileges;
MySQL 用户授权_机佬在线搞机的博客-CSDN博客_mysql 授权
开通防火墙端口3306端口
firewall-cmd --permanent --add-port=3306/tcp
firewall-cmd --reload
linux上导入数据
1、查看mysql中所有的数据库:
show databases;
2、创建一个 aa_dev 数据库:
CREATE DATABASE aa_dev DEFAULT CHARSET utf8mb4 COLLATE utf8mb4_general_ci;
3、用这个库
use aa_dev;
4、查看正在使用的是哪个数据库:
select database();
5、导入sql脚本
source /usr/local/data/aa_dev.sql;
6、查看已经有哪些表
show tables;