centos7离线安装mysql8 笔记

前言:不知道为什么我的云服务器在线安装mysql特别特别慢,于是我手动下载安装了,mysql服务器(本来是想安装5.7的,下错了,查了下使用区别,对我而言这两个版本没啥区别)

首先在线安装 参考其他人的
https://blog.csdn.net/ManagementAndJava/article/details/80039650
但是对我而言,在线安装的时候太慢了,十几k每秒,无奈我就离线安装,直接去官网下载后对应的版本,
下载这种 rpm-bundle.tar结尾格式到
(Tip:不用注册oracle账号,直接下载)

离线安装

参照对应博客
https://blog.csdn.net/a332056918/article/details/87803901

  • 1 下载好的安装包直接上传到服务器,(rz 命令或者xshell等工具)
  • 2 首先查看之前是否有安装过mysql的服务(像我就前前后后失败好几次)
rpm -qa | grep mariadb  # 命令查看 mariadb 的安装包 是否有内容输出
# 如果有 直接卸载
rpm -e mariadb-libs-xxx-xxx # 卸载mariadb
# 在查看是否有内容输出,有就继续卸载 直到没有为止
rpm -qa | grep mariadb 
  • 3 解压mysql8安装包
tar -xvf mysql-8.0.16-2.el7.x86_64.rpm-bundle.tar
# 解压出这些文件
mysql-8.0.16-2.el7.x86_64.rpm-bundle.tar                 
mysql-community-test-8.0.16-2.el7.x86_64.rpm
mysql-community-client-8.0.16-2.el7.x86_64.rpm           
mysql-community-common-8.0.16-2.el7.x86_64.rpm           
mysql-community-devel-8.0.16-2.el7.x86_64.rpm            
mysql-community-embedded-compat-8.0.16-2.el7.x86_64.rpm  
mysql-community-libs-8.0.16-2.el7.x86_64.rpm             
mysql-community-libs-compat-8.0.16-2.el7.x86_64.rpm      
mysql-community-server-8.0.16-2.el7.x86_64.rpm
  • 4 安装
# 需要依次安装
rpm -ivh mysql-community-common-8.0.16-2.el7.x86_64.rpm
rpm -ivh mysql-community-libs-8.0.16-2.el7.x86_64.rpm
rpm -ivh mysql-community-client-8.0.16-2.el7.x86_64.rpm 
rpm -ivh mysql-community-server-8.0.16-2.el7.x86_64.rpm
  • 5 初始化, 生成密码 启动服务
mysqld --initialize;
# 修改目录权限
sudo chown mysql:mysql /var/lib/mysql -R;
# 启动服务
systemctl start mysqld
# 产看密码
cat /var/log/mysqld.log | grep password
  • 6 修改密码
mysql -u root -p '原来的密码'  # 登陆
use mysql;   # 选择数据库

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '你的新密码';  
  • 7 修改成远程连接

网上查到的信息大都是给root用户或者某个用户设置权限,使这个用户可以被远程连接访问。针对该问题的解决办法是通过语句GRANT ALL ON . TO ‘root’@’%’;为root用户(或者是其他用户)设置权限,但我试了几次都是失败的,都报错了,ERROR 1410 (42000): You are not allowed to create a user with GRANT。

我也是这样 https://blog.csdn.net/hbysj/article/details/80819123 参照博客
警告⚠️: 远程连接很有可能造成数据泄漏等问题,企业服务器慎重!
当然我个人服务器无所谓了


use mysql;   # 选择数据库
select host,user,authentication_string,plugin from user;  # 查看

# 修改 host 为 % 所有人都可以访问
update user set host = "%" where user = "root";

# 但是这样到话再次修改密码 就得使用下面到命令
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '你的新密码';  
# 退出
exit
# 重启mysql
systemctl restart mysqld
# 这样就能远程连接了

关于mysql8忘记密码修改小知识

如何关闭 --skip-grant-tables 模式
https://unix.stackexchange.com/questions/58655/turn-off-skip-grant-tables-in-mysql

# 查找systemd设置的环境变量,找到以 Environment= 开头的 确认是否是 --skip-grant-tables 模式
sudo systemctl show
# 如果是可以 执行下面语句 解决,  不是的话则此方法不行。
sudo systemctl set-environment MYSQLD_OPTS=""
最后关于创建数据库的小知识
  • 第一个字符集选择这个 能存储表情等格式
utf8mb4
  • 第二个排序说明选择这个
utf8mb4_general_ci

说明:
1.一般选择utf8.下面介绍一下utf8与utfmb4的区别。

utf8mb4兼容utf8,且比utf8能表示更多的字符。至于什么时候用,看你的做什么项目了,到http://blog.csdn.net/leelyliu/article/details/52879685看unicode编码区从1 ~ 126就属于传统utf8区,当然utf8mb4也兼容这个区,126行以下就是utf8mb4扩充区,什么时候你需要存储那些字符,你才用utf8mb4,否则只是浪费空间。

2.排序说明

排序一般分为两种:utf_bin和utf_general_ci

bin 是二进制, a 和 A 会别区别对待.

例如你运行:

select * from table where a = ‘a’;

那么在utf8_bin中你就找不到 a = ‘A’ 的那一行, 而 utf8_general_ci 则可以.

utf8_general_ci 不区分大小写,这个你在注册用户名和邮箱的时候就要使用。

utf8_general_cs 区分大小写,如果用户名和邮箱用这个 就会照成不良后果

utf8_bin:字符串每个字符串用二进制数据编译存储。 区分大小写,而且可以存二进制的内容

utf8_unicode_ci和utf8_general_ci对中、英文来说没有实质的差别。

utf8_general_ci校对速度快,但准确度稍差。(准确度够用,一般建库选择这个)

utf8_unicode_ci准确度高,但校对速度稍慢。

转载博客列表:
https://blog.csdn.net/a332056918/article/details/87803901
https://blog.csdn.net/lxlong89940101/article/details/80246675
https://blog.csdn.net/hbysj/article/details/80819123
https://blog.csdn.net/JingChC/article/details/82908686

感谢各位老哥,我自己稍微做了下整理

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值