首页 > 数据库 >centos7安装mysql

centos7安装mysql

时间:2024-09-09 11:03:56浏览次数:10  
标签:bin mysql8 安装 centos7 -- mysql data size

centos7安装mysql8

卸载MariaDB

MariaDB
MySQL 的一个分支,主要由开源社区维护

  1. CentOS 7+ 不再默认使用 MySQL 数据库,而是 MariaDB 数据库。
  2. 直接安装 MySQL 会与 MariaDB 的文件冲突。
    # 使用yum卸载
    yum remove mariadb

安装mysql压缩包

  1. 去官网找mysql官网
    img
  2. wget下载
# 感觉挺快的
wget https://dev.mysql.com/get/Downloads/MySQL-8.0/mysql-8.0.20-linux-glibc2.12-x86_64.tar.xz

安装mysql和配置

安装

直接给代码吧。反正解压就行,不用编译。

    # 解压
    tar -xJvf  mysql-8.0.20-linux-glibc2.12-x86_64.tar.x
    # 改个名
    mv mysql-8.0.20-linux-glibc2.12-x86_64 mysql8
    # 直接进去查看bin文件夹在不在,进去运行版本确认成功
    cd ./bin
    ./mysql --version
    # 如何配置环境变量,会配置自己配就行
    # 先输出PATH
    echo $PATH
    # /usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin
    
    # 再找自己bin的位置
    pwd
    # /opt/mysql8/bin
    # 然后暂时配置就是直接写,要全局配就丢/etc/profile
    PATH="/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/opt/mysql8/bin"
    # 全局
    echo PATH="/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/opt/mysql8/bin" >> /etc/profile

配置文件

  1. 先配置用户和赋予权限(直接往下复制就行)(需要自定义就自定义,数据文件丢/data了)
    # 添加用户组
    groupadd mysql
    # 创建mysql用户
    useradd -r -g mysql mysql
    # 创建数据目录
    mkdir -p /data/mysql8_data
    # 更改属主和数组
chown -R mysql:mysql /data/mysql8_data

# 更改模式
chmod -R 750 /data/mysql8_data
  1. 配置文件my.conf

我的配置文件放/opt/mysql8/conf/my.conf了,配置如下,搞个可以直接复制的

[mysql]
default-character-set=utf8mb4
[client]
port       =3306
socket     =/tmp/mysql.sock
[mysqld]
port	   =3306
server-id  =3306
user	   =mysql
# 安装目录
basedir    =/opt/mysql8
# 数据目录
datadir    =/data/mysql8_data/mysql
log-bin    =/data/mysql8_data/mysql/mysql-bin
innodb_data_home_dir      =/data/mysql8_data/mysql
innodb_log_group_home_dir =/data/mysql8_data/mysql
# 日志和进程数据
log-error				  =/data/mysql8_data/mysql.log
pid-file				  =/data/mysql8_data/mysql.pid
# 服务端字符集
character-set-server	   =utf8mb4
lower_case_table_names	   =1
autocommit				   =1





# 下面的可不修改
skip-external-locking
key_buffer_size = 256M
max_allowed_packet = 1M
table_open_cache = 1024
sort_buffer_size = 4M
net_buffer_length = 8K
read_buffer_size = 4M
read_rnd_buffer_size = 512K
myisam_sort_buffer_size = 64M
thread_cache_size = 128
#query_cache_size = 128M
tmp_table_size = 128M
explicit_defaults_for_timestamp = true
max_connections = 500
max_connect_errors = 100
open_files_limit = 65535
binlog_format=mixed
binlog_expire_logs_seconds =864000
# 创建表时使用的默认存储引擎
default_storage_engine = InnoDB
innodb_data_file_path = ibdata1:10M:autoextend
innodb_buffer_pool_size = 1024M
innodb_log_file_size = 256M
innodb_log_buffer_size = 8M
innodb_flush_log_at_trx_commit = 1
innodb_lock_wait_timeout = 50
transaction-isolation=READ-COMMITTED
[mysqldump]
quick
max_allowed_packet = 16M
[myisamchk]
key_buffer_size = 256M
sort_buffer_size = 4M
read_buffer = 2M
write_buffer = 2M
[mysqlhotcopy]
interactive-timeout
  1. 搞完了直接初始化(报错了就大概是流程写错了)
  • --defaults-file:指定配置文件(要放在--initialize 前面)

  • --user: 指定用户

  • --basedir:指定安装目录

  • --datadir:指定初始化数据目录

  • --intialize-insecure:初始化无密码(否则生成随机密码)

mysqld --defaults-file=/opt/mysql8/conf/myconf --basedir=/opt/mysql8 --datadir=/data/mysql8_data/mysql --user=mysql --initialize-insecure
  1. 启动/登录/改密码
# 启动 (后面加个&让终端不被挂起,打个回车就能继续命令)
mysqld_safe --defaults-file=/opt/mysql8/conf/my.conf &
# (首次)登录
mysql -u root --skip-password
# 进入命令行成功就可以改密码了
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '新密码';
# 刷新权限
FLUSH PRIVILEGES;
  1. 之后日常使用可以在命令行修改密码
# 修改密码
mysqladmin -u用户名 -p旧密码 password 新密码

日常使用mysql

  1. mysql未启动(注意配置文件位置)
    mysqld_safe --defaults-file=/opt/mysql8/conf/my.conf &
  2. mysql进入
    mysql -uroot -p
    然后输入密码就行
  3. 在命令行
    退出命令行exit
    关闭mysql服务shutdown(注意别在linux上输入,不然给关机了)

对了,需要配置远程一类或者参考大佬的文章

https://www.cnblogs.com/zhourx/p/17558946.html

补充一下mariadb的使用。

因为做补充,不用很详细的语句,可以仓库这位博主的博客:https://www.cnblogs.com/pyyu/p/9467289.html

  1. yum安装

配个新的yum仓库,然后使用yum安装

    # 创建一个新仓库
    vi /etc/yum.repos.d/MariaDB.repo
    # 添加repo仓库配置
    [mariadb]
    name = MariaDB
    baseurl = http://yum.mariadb.org/10.1/centos7-amd64
    gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB
    gpgcheck=1
    # 接下来yum安装就行
    yum install MariaDB-server MariaDB-client
  1. 基本使用

    和yum操作平常的服务一样的

        systemctl start mariadb  #启动MariaDB
    
        systemctl stop mariadb  #停止MariaDB
    
        systemctl restart mariadb  #重启MariaDB
    
        systemctl enable mariadb  #设置开机启动
    
  2. 数据库基本操作

  • 新安装的操作:

        # 进行初始化
        mysql_secure_installation
        # 接下来会有一堆选项,自己选就是
    
  • 可能会使用的命令

        #修改mysql密码
        MariaDB [(none)]> set password = PASSWORD('redhat123');
        # 创建新用户
        create user yuchao@'127.0.0.1' identified by 'redhat123';
        # 分配用户
        use mysql
        select host,user,password from user where user='yuchao'
        # 授权
        grant 权限 on 数据库.表名 to 账户@主机名    # 对特定数据库中的特定表授权
        grant 权限 on 数据库.* to 账户@主机名      # 对特定数据库中的所有表给与授权
        grant 权限1,权限2,权限3 on *.* to 账户@主机名  # 对所有库中的所有表给与多个授权
        grant all privileges on *.* to 账户@主机名   # 对所有库和所有表授权所有权限
    ###############
        # 允许root用户远程登录
        # mysql好像是使用:GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION;
        grant all privileges on *.* to root@'%' identified by 'centos' # 允许root用户在任意主机地址通过centos密码登录
    
  • sql数据库备份

        # 在shell当中导出备份
        mysqldump -u root -p --all-databases > /tmp/db.sql
        mysqldump -uroot -proot --databases db1 db2 >/tmp/user.sql
    
        # 然后可以在新数据库读取文件
        mysql -uroot -p < /tmp/db.sql
        # 或者进入mysql当中运行
        source /tmp/db.sql
    

mysql忘记密码怎么办

  1. 通过root用户登录,进入etc中mysql的配置文件,并修改解除权限

        # 在mysqld系列标签当中添加参数
        [mysqld]
        # 关闭登录授权
        skip-grant-tables
    
        # 出来重启mysql
        systemctl restart mariadb
        # 不是yum安装的话,可能要直接把进程停了 
    
  2. 进入数据库修改密码

        mysql -uroot -p
    
        # 此时已进入,修改密码sql语句
        use mysql;
        update user set authentication string=password("新密码") where host="localhost" and user="root";
        # 刷新授权
        flush privileges;
    
  3. 最后注掉skip-grant-tables的授权跳过,就可以输密码重新登录了。

出现中文没法写入数据库怎么办

  1. 先进入数据库查看编码

        -- 默认已进入数据库
        \s
    

    输出如下:
    img

  2. 如果图中不是使用utf8编码的,就需要修改配置文件并重新启动mysql

    主要的配置修改如下:

    [mysqld]
    character-set-server=utf8
    collation-server=utf8_general_ci
    log-error=/var/log/mysqld.log
    [client]
    default-character-set=utf8
    [mysql]
    default-character-set=utf8
    
  3. 重启mysql即可读取中文。

标签:bin,mysql8,安装,centos7,--,mysql,data,size
From: https://www.cnblogs.com/lmlsh/p/18336823

相关文章

  • centos7部署django
    问题汇总由于centos7到现在好像挺老了。有些东西真的逆天。本次采取的项目为django后端项目采用的是开源的django博客系统代码仓库:https://github.com/liangliangyy/DjangoBlog.git使用poetry作为包管理工具。uwsgi+nginx进行部署supervisor作为进程管理工具采......
  • 足浴行业在线预约小程序源码系统+支持拼团功能 带完整的安装代码包以及搭建部署教程
    系统概述在快节奏的现代生活中,人们对健康养生的需求日益增长,足浴行业作为传统养生方式之一,其市场需求也随之不断扩大。为了满足消费者日益增长的便捷性需求,一款集在线预约、拼团优惠于一体的足浴行业小程序源码系统应运而生。本文将详细介绍这款源码系统的系统概述、特色功能......
  • 以MySQL为例,来看看maven-shade-plugin如何解决多版本驱动共存的问题?
    开心一刻清明节那天,看到一小孩在路边烧纸时不时地偷偷往火堆里扔几张考试卷子边烧边念叨:爷爷呀,你岁数大了,在那边多做做题吧,对脑子好,要是有不懂的地方,就把我老师带走,让他教您!前提说明假设MySQL5.7.36的库qsl_datax有表qsl_datax_source和数据CREATETABLE`qsl_datax_source`......
  • MySQL int(10) 与 int(11) 的区别
    不知道大家是不是和我一样,每次给有个列添加 int(11) 的时候都会想,会不会是 int(10) ,偶尔也会发神经的想,如果 int(32) 这样的可否?索性,我们就先来解决这个问题吧。int 类型的底层存储采用的是 4 字节,也就是32位,这样能够存储的实际最大值为 4294967296,大家数数一下......
  • mysql数据库,外键关联删除主表数据,binlog只记主表binlog
    环境:8.0.32场景一、开启外键约束关联删除时,删除主表记录,binlog中内容解析1、写入测试数据,并删除主键id=1,子表id=1一并删除mysql>createtablet1(idintprimarykey,namevarchar(200));QueryOK,0rowsaffected(0.01sec)mysql>insertintot1select1,'zs';Que......
  • MySQL root密码忘记解决
    skip-grant-tables的解法 首先,关闭实例这里,只能通过killmysqld进程的方式。注意:不是mysqld_safe进程,也切忌使用kill-9。#ps-ef|grepmysqldroot62206171008:14pts/000:00:00/bin/shbin/mysqld_safe--defaults-file=my.cnfmysql63476220......
  • mysqldump
     MySql数据库备份与恢复——使用mysqldump导入与导出方法总结MySql数据库备份与恢复——使用mysqldump导入与导出方法总结mysqldump客户端可用来转储数据库或搜集数据库进行备份或将数据转移到另一个sql服务器(不一定是一个mysql服务器)。转储包含创建表和/或装载......
  • Linux 上自动下载 Docker 依赖并离线安装的完整指南
    Linux上自动下载Docker依赖并离线安装的完整指南这篇指南详细讲解了如何在CentOS7.9系统上,通过yum命令自动下载Docker的所有依赖包,并将其打包成tar文件以供离线安装。文中包括了添加Docker软件源、更新yum缓存、指定路径下载依赖包、打包rpm文件,以及最终在无网络环境下......
  • MySQL root密码忘记解决
    skip-grant-tables的解法首先,关闭实例这里,只能通过killmysqld进程的方式。注意:不是mysqld_safe进程,也切忌使用kill-9。#ps-ef|grepmysqldroot62206171008:14pts/000:00:00/bin/shbin/mysqld_safe--defaults-file=my.cnfmysql634762200......
  • MySQL零基础入门教程-8.1 表的连接\增删数据、表结构的增删改、字段约束(非空、唯一
    教程来源:B站视频BV1Vy4y1z7EX001-数据库概述_哔哩哔哩_bilibili我听课收集整理的课程的完整笔记,供大家学习交流下载:夸克网盘分享本文内容为完整笔记的第三篇目录1、表怎么进行连接的2、insert语句可以一次插入多条记录吗?可以的!3、快速创建表?【了解内容】4、将查询结果......