centos7安装mysql

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即可读取中文。

posted on 2024-09-09 11:06  longsihua2003  阅读(6)  评论(0编辑  收藏  举报