• Linux安装MySQL【Ubuntu20.04】


    操作系统:Ubuntu20.04

    使用工具:xshell7、xftp7 

    MySQL版本:5.7

    一、删除Linux系统下自带的mariadb (因为centos自带一个老版Mariadb 与MySQL冲突)

    •  如果没有找到Mariadb直接跳过

    1. #查找Mariadb
    2. rpm -qa | grep mariadb

    自带的mariadb

    • 删除Mariadb

    yum -y remove mariadb-libs-5.5.68-1.el7.x86_64
    • 最后可以在检查一遍是否删除

    二、下载MySQL

    • 官网下载:https://downloads.mysql.com/archives/community/

      下载方式1(用xftp):官网下载到本地用xftp上传到服务器

      下载方式2(用wget): 右键Download复制链接地址

    1. #如果没有wget命需安装
    2. sudo yum -y install wget
    3. #mysql在线下载,后面地址为右键复制的链接
    4. wget https://downloads.mysql.com/archives/get/p/23/file/mysql-5.7.38-linux-glibc2.12-x86_64.tar.gz
    • 百度网盘链接:https://pan.baidu.com/s/1qjBKWJAZZOW1WbSxjS3GXA?pwd=cfp5

      提取码:cfp5

    三、安装MySQL

    • 创建mysql目录并解压到指定文件夹

    1. #解压文件
    2. tar -zxvf mysql-5.7.38-linux-glibc2.12-x86_64.tar.gz
    3. #移动文件夹并重命名
    4. mv mysql-5.7.38-linux-glibc2.12-x86_64 /usr/local/mysql
    •    创建mysql用户组和用户并修改权限

    1. groupadd mysql
    2. useradd -r -g mysql mysql
    • 创建数据目录并赋予权限

    1. mkdir -p /data/mysql #创建目录
    2. chown mysql:mysql -R /data/mysql #赋予权限
    • 配置my.cnf

    vim /etc/my.cnf
    • 添加以下内容

    1. [mysqld]
    2. bind-address=0.0.0.0
    3. port=3306
    4. user=mysql
    5. basedir=/usr/local/mysql
    6. datadir=/data/mysql
    7. socket=/tmp/mysql.sock
    8. log-error=/data/mysql/mysql.err
    9. pid-file=/data/mysql/mysql.pid
    10. #character config
    11. character_set_server=utf8mb4
    12. symbolic-links=0
    13. explicit_defaults_for_timestamp=true
    • 初始化数据库并查看密码

    1. #进入mysql的bin目录
    2. cd /usr/local/mysql/bin/
    3. #初始化
    4. ./mysqld --defaults-file=/etc/my.cnf --basedir=/usr/local/mysql/ --datadir=/data/mysql/ --user=mysql --initialize
    5. #查看密码
    6. cat /data/mysql/mysql.err

    四、启动MySQL并更改密码

    1. #先将mysql.server放置到/etc/init.d/mysql中
    2. cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql

    没启动MySQL时:

    service mysql status
    1. root@iZm5e9phbzdxx0lysrv9t2Z:~# service mysql status
    2. ● mysql.service - LSB: start and stop MySQL
    3. Loaded: loaded (/etc/init.d/mysql; generated)
    4. Active: inactive (dead)
    5. Docs: man:systemd-sysv-generator(8)
    6. Dec 02 15:57:00 iZm5e9phbzdxx0lysrv9t2Z systemd[1]: Stopped LSB: start and stop MySQL.
    7. Dec 02 15:57:53 iZm5e9phbzdxx0lysrv9t2Z systemd[1]: Starting LSB: start and stop MySQL...
    8. Dec 02 15:57:53 iZm5e9phbzdxx0lysrv9t2Z mysql[2578]: Starting MySQL
    9. Dec 02 15:57:54 iZm5e9phbzdxx0lysrv9t2Z mysql[2578]: . *
    10. Dec 02 15:57:54 iZm5e9phbzdxx0lysrv9t2Z systemd[1]: Started LSB: start and stop MySQL.
    11. Dec 02 16:01:01 iZm5e9phbzdxx0lysrv9t2Z systemd[1]: Stopping LSB: start and stop MySQL...
    12. Dec 02 16:01:01 iZm5e9phbzdxx0lysrv9t2Z mysql[2960]: Shutting down MySQL
    13. Dec 02 16:01:03 iZm5e9phbzdxx0lysrv9t2Z mysql[2960]: .. *
    14. Dec 02 16:01:03 iZm5e9phbzdxx0lysrv9t2Z systemd[1]: mysql.service: Succeeded.
    15. Dec 02 16:01:03 iZm5e9phbzdxx0lysrv9t2Z systemd[1]: Stopped LSB: start and stop MySQL.
    16. root@iZm5e9phbzdxx0lysrv9t2Z:~#
    1. root@iZm5e9phbzdxx0lysrv9t2Z:~# ps aux | grep mysql
    2. root 3373 0.0 0.0 9032 720 pts/1 S+ 16:05 0:00 grep mysql
    3. root@iZm5e9phbzdxx0lysrv9t2Z:~#

     启动MySQL:

    1. #启动mysql
    2. service mysql start
    1. root@iZm5e9phbzdxx0lysrv9t2Z:~# service mysql start
    2. root@iZm5e9phbzdxx0lysrv9t2Z:~#
    1. root@iZm5e9phbzdxx0lysrv9t2Z:~# ps aux | grep mysql
    2. root 3407 0.0 0.0 2608 1700 ? S 16:06 0:00 /bin/sh /usr/local/mysql/bin/mysqld_safe --datadir=/data/mysql --pid-file=/data/mysql/mysql.pid
    3. mysql 3637 0.8 8.9 1096848 181272 ? Sl 16:06 0:00 /usr/local/mysql/bin/mysqld --basedir=/usr/local/mysql --datadir=/data/mysql --plugin-dir=/usr/local/mysql/lib/plugin --user=mysql --log-error=/data/mysql/mysql.err --pid-file=/data/mysql/mysql.pid --socket=/tmp/mysql.sock --port=3306
    4. root 3669 0.0 0.0 9032 724 pts/1 S+ 16:06 0:00 grep mysql
    5. root@iZm5e9phbzdxx0lysrv9t2Z:~#
    1. root@iZm5e9phbzdxx0lysrv9t2Z:~# service mysql status
    2. ● mysql.service - LSB: start and stop MySQL
    3. Loaded: loaded (/etc/init.d/mysql; generated)
    4. Active: active (running) since Fri 2022-12-02 16:06:20 CST; 1min 7s ago
    5. Docs: man:systemd-sysv-generator(8)
    6. Process: 3382 ExecStart=/etc/init.d/mysql start (code=exited, status=0/SUCCESS)
    7. Tasks: 28 (limit: 2314)
    8. Memory: 171.3M
    9. CGroup: /system.slice/mysql.service
    10. ├─3407 /bin/sh /usr/local/mysql/bin/mysqld_safe --datadir=/data/mysql --pid-file=/data/mysql/mysql.pid
    11. └─3637 /usr/local/mysql/bin/mysqld --basedir=/usr/local/mysql --datadir=/data/mysql --plugin-dir=/usr/local/mysql/lib/plugin --user=mysql --log-error=/data/mysql/mysql.err --p>
    12. Dec 02 16:06:19 iZm5e9phbzdxx0lysrv9t2Z systemd[1]: Starting LSB: start and stop MySQL...
    13. Dec 02 16:06:19 iZm5e9phbzdxx0lysrv9t2Z mysql[3382]: Starting MySQL
    14. Dec 02 16:06:20 iZm5e9phbzdxx0lysrv9t2Z mysql[3382]: . *
    15. Dec 02 16:06:20 iZm5e9phbzdxx0lysrv9t2Z systemd[1]: Started LSB: start and stop MySQL.

    启动MySQL成功【如果显示Failed to start mysql.service: Unit mysql.service not found.重启服务器】

    五、MySQL操作

    1、登录MySQL

    进入Mysql安装目录

    1. root@iZm5e9phbzdxx0lysrv9t2Z:~# cd /usr/local/mysql
    2. root@iZm5e9phbzdxx0lysrv9t2Z:/usr/local/mysql# ls
    3. bin docs include lib LICENSE man README share support-files
    4. root@iZm5e9phbzdxx0lysrv9t2Z:/usr/local/mysql# bin/mysql -u root -p
    5. Enter password:

     如果不希望每次都到bin目录下使用mysql命令则执行以下命令

    ln -s  /usr/local/mysql/bin/mysql    /usr/bin

     在任意目录下都可以通过 mysql -u root -p 来登陆mysql

    1. wyr@iZm5e9phbzdxx0lysrv9t2Z:~$ mysql -u root -p
    2. Enter password:

    2、更改密码(依次执行)

    登陆后如果不修改密码就开始操作MySQL,会出现如下提示:

    1. mysql> show databases;
    2. ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing this statement.
    3. mysql>

    更改密码: 

    1. SET PASSWORD = PASSWORD('123456');
    2. ALTER USER 'root'@'localhost' PASSWORD EXPIRE NEVER;
    3. FLUSH PRIVILEGES;

    3、让navicat能连接MySQL

    1. use mysql #访问mysql库
    2. update user set host = '%' where user = 'root'; #使root能再任何host访问
    3. FLUSH PRIVILEGES; #刷新
    • 放行3306端口让外部连接

    1. #3306 代表端口号
    2. firewall-cmd --zone=public --add-port=3306/tcp --permanent
    3. #刷新生效
    4. firewall-cmd --reload

    • 最后使用navicat连接

    六、MySQL一些命令

    1. #查看MySQL状态
    2. service mysql status
    3. #启动MySQL
    4. #service mysql start
    5. #重启MySQL
    6. service mysql reload

    Linux安装MySQL - 哔哩哔哩

  • 相关阅读:
    【Java基础】JDK8-17新特性
    同城两中心自适应同步模式部署
    mysql replace的死锁分析
    西安-腾讯云-Python面试经验--一面凉经
    VsCode中文输出为乱码的原因及解决方法
    蓝桥杯每日一题2023.10.16
    SpringBoot 官方推荐,连接池,太快了
    Linux服务器挖矿病毒处理
    Java字符串拼接(连接)
    [python 刷题] 875 Koko Eating Bananas
  • 原文地址:https://blog.csdn.net/u013250861/article/details/128145138