• MySQL笔记(一)CentOS7安装MySQL8


    目录

    1. 准备工作:卸载MariaDB、下载资源包、检查是否已安装MySQL;
    2. 安装:解压;
    3. 配置:创建用户组和用户、数据目录;
    4. 初始化MySQL:配置文件、初始化;
    5. 启动MySQL:启动服务、登录、修改密码、创建远程连接用户、退出和关闭;

    一、准备

    1.1 卸载MariaDB

    说明

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

    • CentOS 7及以上版本已经不再使用MySQL数据库,而是使用MariaDB数据库;
    • 如果直接安装MySQL,会和MariaDB的文件冲突;

    所以,需要先卸载自带的MariaDB,再安装MySQL。

    查看版本:

    rpm -qa|grep mariadb
    

    卸载:

    rpm -e --nodeps mariadb文件名
    

    如下:

    [root@node3 ~]# rpm -qa|grep mariadb
    mariadb-libs-5.5.65-1.el7.x86_64
    [root@node3 ~]# rpm -e --nodeps mariadb-libs-5.5.65-1.el7.x86_64
    [root@node3 ~]# 
    

    二、安装MySQL

    2.1 下载资源包

    :将MySQL资源包放在/usr/local/

    资源的两种下载方式

    1. 官网下载资源包,通过 Xftp上传到服务器(下载地址https://dev.mysql.com/downloads/mysql/)。
    2. 通过 wget下载到服务器。

    下面通过wget方式下载。

    切换到/usr/local目录下,下载资源包:

    wget https://dev.mysql.com/get/Downloads/MySQL-8.0/mysql-8.0.20-linux-glibc2.12-x86_64.tar.xz
    
    

    2.2 检查是否已安装MySQL

    查看MySQL信息

    rpm -qa|grep mysql
    # 如果没有输出,说明当前系统没有安装MySQL
    # 如果不是想要的版本,则卸载:rpm -e --nodeps mysql文件名
    

    2.3 解压

    # 解压
    tar -Jxvf mysql-8.0.20-linux-glibc2.12-x86_64.tar.xz
    
    # 重命名
    mv mysql-8.0.20-linux-glibc2.12-x86_64 mysql8
    
    

    2.4 设置环境变量

    [root@node3 local]# vim /etc/profile
    
    export PATH=$PATH:$JAVA_HOME/bin:/usr/local/mysql8/bin
    
    
    [root@node3 local]# source /etc/profile
    
    # 验证版本
    [root@node1 etc]# mysql --version
    mysql  Ver 8.0.20 for Linux on x86_64 (MySQL Community Server - GPL)
    
    

    三、配置

    1、创建用户组和用户

    # 创建一个用户组:mysql
    groupadd mysql
    # 创建一个系统用户:mysql,指定用户组为mysql
    useradd -r -g mysql mysql
    
    

    2、创建目录

    # 创建目录
    mkdir -p /data/mysql8_data/
    
    # 授权
    # 更改属主和数组
    chown -R mysql:mysql /data/mysql8_data
    # 更改模式
    chmod -R 750 /data/mysql8_data/
    
    

    四、初始化MySQL

    4.1 配置参数

    在/usr/local/etc/下,创建my.cnf配置文件,用于初始化MySQL数据库.。

    直接在/usr/local/etc/下用 vim编辑器,编辑后保存即可

    • 进入Vim编辑器vim /usr/local/etc/my.cnf
    • 进入编辑模式i,粘贴以下内容;
    • 退出编辑模式ESC
    • 保存:wq

    my.cnf内容如下:

    [mysql]
    # 默认字符集
    default-character-set=utf8mb4
    [client]
    port       = 3306
    socket     = /tmp/mysql.sock
    
    [mysqld]
    port       = 3306
    server-id  = 3306
    user       = mysql
    socket     = /tmp/mysql.sock
    # 安装目录
    basedir    = /usr/local/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/mysql.log
    pid-file  =/data/mysql8_data/mysql/mysql.pid
    # 服务端使用的字符集默认为8比特编码
    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
    
    

    4.2 初始化

    mysqld --defaults-file=/usr/local/etc/my.cnf --basedir=/usr/local/mysql8 --datadir=/data/mysql8_data/mysql --user=mysql --initialize-insecure
    

    参数(重要)

    • --defaults-file:指定配置文件(要放在--initialize 前面)
    • --user: 指定用户
    • --basedir:指定安装目录
    • --datadir:指定初始化数据目录
    • --intialize-insecure:初始化无密码

    五、启动MySQL

    5.1 启动服务

    # 启动服务
    # 完整命令
    /usr/local/mysql8/bin/mysqld_safe --defaults-file=/usr/local/etc/my.cnf &
    # 添加PATH变量后的命令(省略bin目录的路径)
    mysqld_safe --defaults-file=/usr/local/etc/my.cnf &
    
    # 查看是否启动
    [root@node1 etc]# ps -ef|grep mysql
    root       1860   1565  0 1月21 pts/0   00:00:00 /bin/sh /usr/local/mysql8/bin/mysqld_safe --defaults-file=/usr/local/etc/my.cnf
    mysql      2397   1860  0 1月21 pts/0   00:00:58 /usr/local/mysql8/bin/mysqld --defaults-file=/usr/local/etc/my.cnf --basedir=/usr/local/mysql8 --datadir=/data/mysql8_data/mysql --plugin-dir=/usr/local/mysql8/lib/plugin --user=mysql --log-error=/data/mysql8_data/mysql/mysql.log --open-files-limit=65535 --pid-file=/data/mysql8_data/mysql/mysql.pid --socket=/tmp/mysql.sock --port=3306
    root       2532   1565  0 00:16 pts/0    00:00:00 grep --color=auto mysql
    
    

    5.2 登录

    # 无密码登录方式
    mysql -u root --skip-password
    # 有密码登录方式(初始的随机密码在/data/mysql8_data/mysql/mysql.log下)
    mysql -u root -p
    password:随机密码
    

    5.3 修改密码

    MySQL初始化后的root用户、新创建的用户,都需要设置第一次密码。

    首次修改

    # 修改密码 mysql_native_password:本地密码插件,首次改密时建议使用
    ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '新密码';
    # 刷新权限
    FLUSH PRIVILEGES;
    

    非首次修改

    # Linux 命令行
    mysqladmin -u用户名 -p旧密码 password 新密码
    
    #MySQL命令行
    # 设置密码
    SET PASSWORD FOR '用户名'@'主机' = PASSWORD(‘密码');
    # 刷新权限
    FLUSH PRIVILEGES;
    

    5.4 创建远程链接用户

    选择mysql数据库

    # 选择mysql数据库
    USE mysql;
    # 查看当前用户
    SELECT user,host,plugin,authentication_string FROM user;
    

    创建用户,任意远程访问

    CREATE user 'root'@'%';
    # 设置密码
    ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '密码';
    # 授权用户所有权限
    GRANT ALL PRIVILEGES ON *.* TO "root"@"%";
    # 刷新权限
    FLUSH PRIVILEGES;
    

    查看最终权限

    mysql> SELECT user,host,plugin,authentication_string FROM user;
    +------------------+-----------+-----------------------+------------------------------------------------------------------------+
    | user             | host      | plugin                | authentication_string                                                  |
    +------------------+-----------+-----------------------+------------------------------------------------------------------------+
    | root             | %         | mysql_native_password | *822A23996E3E80785401BCCE271747CCFDFE686F                              |
    | mysql.infoschema | localhost | caching_sha2_password | $A$005$THISISACOMBINATIONOFINVALIDSALTANDPASSWORDTHATMUSTNEVERBRBEUSED |
    | mysql.session    | localhost | caching_sha2_password | $A$005$THISISACOMBINATIONOFINVALIDSALTANDPASSWORDTHATMUSTNEVERBRBEUSED |
    | mysql.sys        | localhost | caching_sha2_password | $A$005$THISISACOMBINATIONOFINVALIDSALTANDPASSWORDTHATMUSTNEVERBRBEUSED |
    | root             | localhost | mysql_native_password | *822A23996E3E80785401BCCE271747CCFDFE686F                              |
    +------------------+-----------+-----------------------+------------------------------------------------------------------------+
    5 rows in set (0.00 sec)
    
    
  • 相关阅读:
    磁盘分区,fdisk,gdisk,开机自动挂载,swap分区,修复文件系统,备份文件
    进程脱离窗口运行,僵尸、孤儿进程
    top命令、kill命令
    进程状态
    rpm包、挂载、yum命令
    DRF源码分析
    forms组件源码
    Django CBV源码分析
    魔法方法
    鸭子类型
  • 原文地址:https://www.cnblogs.com/lovechengyu/p/15840073.html
Copyright © 2020-2023  润新知