MySQL

一、安装

1. Ubuntu安装

1. apt install 安装

自动安装好后设置密码就行

2. apt deb包安装

  1. 下载deb安装包
    1. 进入MySQL官网找到MySQL8.0参考手册
    2. 点击侧边栏安装和升级MySQL
    3. 选择在Linux上安装MySQL
    4. 选择使用MySQL APT 包在Linux上安装MySQL
    5. 点击 A Quick Guide to Using the MySQL APT Repository
    6. 点击全新安装MySQL的步骤
    7. 点击跳转MySQL APT存储库的下载页面
    8. 复制下载链接,将安装包下载到Linux
      1
      wget https://dev.mysql.com/get/mysql-apt-config_0.8.23-1_all.deb
  2. 执行下载的deb文件
    1
    sudo dpkg -i mysql-apt-config_0.8.23-1_all.deb
    1. 选择MySQL Server版本
    2. 选择MySQL-8.0
  3. 更新apt依赖
    1
    sudo apt update
  4. 安装MySQL Server
    1
    sudo apt install mysql-server
    1. 当需要选择时输入y回车继续安装
    2. 在出现的对话框中输入密码
    3. 在输入一遍密码确认
    4. 根据需求选择加密选项,第一项为强密码,第二项为弱密码
  5. 测试安装
    1
    mysql -uroot -p你设置的密码
  6. 由于是默认安装的MySql,我们需要配置一下。不配置也是可以用的。
    1
    sudo mysql_secure_installation 
    1. 输入root密码进行下一步操作

    2. 是否安装强密码验证组件,根据实际开发需求输入

    3. 是否要修改root的密码,根据实际需求输入

    4. 是否删除匿名用户,根据实际需求选择

    5. 是否禁止root远程登录,一般来说生产线肯定是需要禁止的,如果是生产线最好还是输y。如果是开发或测试之类的就输n,方便查看数据。

    6. 是否删除test数据库,根据实际需求选择

    7. 是否重新加载特权表

至此就安装和配置都完成了。

2. Centos安装

1. 压缩包安装

  1. 查看 mysql 的安装包检查是否安装mariadb,命令:

    1
    rpm -qa|grep mariadb
  2. 删除mariadb,命令:

    1
    rpm -e --nodeps mariadb-libs
  3. 下载mysql,命令:

    1
    wget https://cdn.mysql.com//Downloads/MySQL-8.0/mysql-8.0.27-linux-glibc2.12-x86_64.tar.xz
  4. 解压,命令:

    1
    2
    3
    xz -dev mysql-8.0.27-linux-glibc2.12-x86_64.tar.xz

    tar -xvf mysql-8.0.27-linux-glibc2.12-x86_64.tar /tools
  5. 重命名:

    1
    mv mysql-8.0.27-linux-glibc2.12-x86_64 mysql8
  6. 进入mysql8,创建data文件夹

    1
    2
    cd mysql8
    mkdir data
  7. 配置mysql环境变量,打开/etc/profile添加如下

    1
    2
    3
    4
    5
    MYSQL_HOME=/opt/mysql8/bin

    PATH=$PATH:$MYSQL_HOME

    export MYSQL_HOME PATH
  8. 配置完成后重载:

    1
    source /etc/profile
  9. 创建mysql用户组和mysql用户

    1
    2
    groupadd mysql
    useradd -g mysql mysql
  10. 关联myql用户到mysql用户组中

    进入到mysql8所在目录,此例中为/opt/

    1
    2
    3
    4
    chown -R mysql:mysql mysql8
    chown -R mysql:mysql mysql8/data
    chown -R mysql mysql8
    chown -R mysql mysql8/data
  11. 更改mysql安装文件夹mysql的权限

    1
    chmod -R 755 mysql8
  12. 安装libaio依赖包

    查询是否安装libaio依赖包

    1
    yum search libaio

    如果没安装,可以用下面命令安装:

    1
    2
    3
    yum install libaio

    apt-get -y install libaio* libaio-dev*
  13. 初始化mysql:

    1
    mysqld --user=mysql --basedir=/tools/mysql/mysql8 --datadir=/tools/mysql/mysql8/data --initialize

    初始化完成后记住最后一行末尾的root@localhost后的密码,是mysql数据库登录的临时密码,每个人都不一样

    1
    2022-01-14T01:56:34.034586Z 6 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: hEpHyXo/8#C+
  14. 启动mysql服务

    1
    sh /opt/mysql8/support-files/mysql.server start

    启动报错,原因:没有修改mysql的配置文件

  15. 修改Mysql配置文件

    1
    vim /opt/mysql8/support-files/mysql.server

    修改以下属性:

    basedir=/opt/mysql8
    datadir=/opt/mysql8/data

    mysqld_pid_file_path=/opt/mysql8/data/mysqld_pid
    image-20220114101244779

  16. 将mysql配置文件拷贝到etc/init.d下,并修改权限

    1
    2
    cp /opt/mysql8/support-files/mysql.server /etc/init.d/mysqld
    chmod 755 /etc/init.d/mysqld
  17. 将mysql服务加到系统服务中

    1
    chkconfig --add mysqld
  18. 开机自启动

    1
    chkconfig mysqld on
  19. 修改my.cnf文件

    这里下载的mysql8.0.27版本并没有这个my.cnf文件,因此直接创建的。

    1
    vim /etc/my.cnf
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    [client]
    port=3306
    socket=/tmp/mysql.sock

    [mysqld]
    basedir=/opt/mysql8
    datadir=/opt/mysql8/data
    socket=/tmp/mysql.sock
    user=mysql
    port=3306
    character_set_server=utf8
    # symbolic-links=0
    # bind-address=0.0.0.0


    [mysqld_safe]
    log-error=/opt/mysql8/data/error.log
    pid-file=/opt/mysql8/data/mysqld.pid
    tmpdir=/tmp
  20. 授权文件my.cnf

    1
    2
    3
    chown mysql:mysql my.cnf
    chown mysql my.cnf
    chmod 755 my.cnf
  21. 启动服务

    1
    2
    3
    4
    5
    查看服务:service mysqld status

    停止服务:service mysqld stop

    启动服务:service mysqld start
  22. 登录mysql及会出现的问题

    1
    mysql -uroot -p

    若出现错误:./mysql: error while loading shared libraries: libtinfo.so.5: cannot open shared object file: No such file or directory

    执行:

    1
    yum install libncurses*
  23. 测试mysql

    1
    mysql -uroot -p

2. rpm安装

  1. 查看 mysql 的安装包检查是否安装mariadb,命令:

    1
    rpm -qa|grep mariadb
  2. 删除mariadb,命令:

    1
    rpm -e --nodeps mariadb-libs
  3. 下载mysql,命令:

    1
    wget https://cdn.mysql.com//Downloads/MySQL-8.0/mysql-8.0.27-1.el8.x86_64.rpm-bundle.tar
  4. 解压,命令:

    1
    tar -xvf mysql-8.0.27-1.el8.x86_64.rpm-bundle.tar
  5. 安装common,命令:

    1
    rpm -ivh mysql-community-common-8.0.27-1.el8.x86_64.rpm --nodeps --force
  6. 安装libs,命令:

    1
    rpm -ivh mysql-community-libs-8.0.27-1.el8.x86_64.rpm --nodeps --force
  7. 安装client,命令:

    1
    rpm -ivh mysql-community-client-8.0.27-1.el8.x86_64.rpm --nodeps --force
  8. 安装server,命令:

    1
    rpm -ivh mysql-community-server-8.0.27-1.el8.x86_64.rpm --nodeps --force
  9. 查看 mysql 的安装包,命令:

    1
    rpm -qa | grep mysql 
  10. 数据库初始化和配置:

    1
    2
    3
    4
    mysqld --initialize;
    chown mysql:mysql /var/lib/mysql -R;
    systemctl start mysqld.service;
    systemctl enable mysqld;
  11. 查看数据库密码:

    1
    cat /var/log/mysqld.log | grep password 
  12. 登录数据库:

    1
    mysql -uroot -p
  13. 修改密码:

    1
    ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'xxxx';

3. 卸载

1. Ubuntu卸载MySQL

  1. 查看MySQL依赖 :

    1
    dpkg --list|grep mysql
  2. 卸载:

    1
    sudo apt-get remove mysql-common
  3. 卸载:

    1
    2
    sudo apt-get autoremove --purge mysql-server-8.0  #(这里版本对应即可)

  4. 清除残留数据:

    1
    dpkg -l|grep ^rc|awk '{print$2}'|sudo xargs dpkg -P
  5. 再次查看MySQL的剩余依赖项:

    1
    dpkg --list|grep mysql

    (这里一般就没有输出了,如果有执行下一步)

  6. 继续删除剩余依赖项,如:

    1
    sudo apt-get autoremove --purge mysql-apt-config

2. Centos卸载MySQL

  1. 停止服务

    1
    systemctl stop mysqld
  2. 查看已安装的MYSQL相关软件

    1
    rpm -qa | grep -i mysql
  3. 执行删除命令

    1
    yum remove mysql-community-libs.x86_64 mysql-community-client-plugins.x86_64 mysql-community-client.x86_64 mysql-community-common.x86_64 mysql-community-icu-data-files.x86_64 mysql-community-server.x86_64 
  4. 查看是否有安装mariadb,如安装了需卸载

    1. 查看
      1
      rpm -qa | grep -i mariadb
    2. 卸载
      1
      yum remove mariadb
  5. 查看mysql相关文件

    1
    find / -name mysql
  6. 删除相关的mysql文件
    注意: 根据实际情况删除

    1
    rm -rf /var/lib/mysql

4. 操作

  1. 修改root密码
    1
    2
    ALTER USER 'root'@'localhost' IDENTIFIED BY 'xxxxxxx';
    flush privileges;
  2. 创建数据库
    1
    create database xxxx charset=utf8;  
  3. 添加远程登录用户
    1
    create user 'xxxx'@'%' identified with mysql_native_password by 'xxxxx';
  4. 修改权限
    1
    grant all on db.table  to 'user'@'%';
  5. 刷新权限
    1
    flush privileges;