开发者

Linux使用yum安装mysql的方式

目录
  • 一、安装前准备
  • 二、yum安装
  • 三、启动
  • 四、另一种方法安装
    • 4.1、安装mysql
    • 4.2、启动mysql 服务
    • 4.3、设置密码
  • 总结

    一、安装前准备

    1、检查是否已经安装过mysql,执行命令
    rpm -qa | grep mysql
    如果已存在,则执行删除命令 后边为Mysql目录
    rpm -e --nodeps mysql-xxxx
    
    2、查询所有Mysql对应的文件夹
    whereis mysqlm
    find / -name mysql
    
    删除相关目录或文件
    rm -rf /usr/bin/mysql /usr/include/mysql /data/mysql /data/mysql/mysql 
    
    验证是否删除完毕
    whereis mysqlm
    find / -name mysql
    
    3、检查mysql用户组和用户是否存在,如果没有,则创建
    cat /etc/group | grep mysql
    cat /etc/passwd |grep mysql
    groupadd mysql
    useradd -r -g mysql mysql

    二、yum安装

    1、yum install mysql
    
    2、yum install mysql-server   #报错如下
    Last metadata expiration check: 0:25:55 ago on Mon 21 Feb 2022 10:27:14 AM CST.
    No match for argument: mysql-server
    Error: Unable to find a match: mysql-server
    
    #原因:Centos7自带有mariadb而不是MySQL,MariaDB和MySQL一样也是开元的数据库
    #解决办法:如果必须要安装MySQL,首先必须添加mysql社区repo,执行命令:
    sudo rpm -Uvh http://dev.mysql.com/get/mysql-community-release-el7-5.noarch.rpm
    
    Retrieving http://dev.mysql.com/get/mysql-community-release-el7-5.noarch.rpm
    Preparing...                          ################################# [100%]
    Updating / installing...
       1:mysql-community-releaseandroid-el7-5    ################################# [100%]
       
    # 执行完后,则继续执行:
    yum install mysql-server 
    
    3、yum install mysql-devel
    
    4、yum install -y mariadb-server

    三、启动

    1、
    mysql
    ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)
    
    
    修改 /etc/my.cnf
    #添加
    [client]
    port=3306
    socket=/var/lib/mysql/mysql.sock
    
    user=mysql
    
    2、
    #service mysqld start# 运行卡住
    Redirecting to /bin/systemctl start mysqld.service
    ^C   
    
    service mysqld status
    systemctl status mysqld.service
    ● mysqld.service - MySQL Community Server
       Loaded: loaded (/usr/lib/systemd/system/mysqld.service; enabled; vendor preset: disabled)
       Active: activating (start-post) since Mon 2022-02-21 14:05:51 CST; 6min ago
      Process: 63686 ExecStart=/usr/bin/mysqld_safe --basedir=/usr (code=exited, status=0/SUCCESS)
      Process: 63671 ExecStartPre=/usr/bin/mysql-systemd-start pre (code=exited, status=0/SUCCESS)
     Main PID: 63686 (code=exited, status=0/SUCCESS);         : 63687 (mysql-systemd-s)
        Tasks: 2
       Memory: 17.6M
       CGroup: /system.slice/mysqld.service
               └─control
                 ├─63687 /bin/bash /usr/bin/mysql-systemd-start post
                 └─69856 sleep 1
    
    Feb 21 14:05:51 xxx systemd[1]: Starting MySQL Community Server...
    Feb 21 14:05:51 xxx mysqld_safe[63686]: 220221 14:05:51 mysqld_safe Logging to '/var/log/mariadb/mariadb.log'.
    Feb 21 14:05:51 xxx mysqld_safe[63686]: 220221 14:05:51 mysqld_safe Starting mysqld daemon with databases from /var/lib/mysql
    
    2.1、
    # 查看/var/log/mariadb/mariadb.log
    
    2022-02-21 14:34:29 92642 [Note] Plugin 'FEDERATED' is disabled.
    /usr/sbin/mysqld: Table 'mysql.plugin' doesn't exist
    2022-02-21 14:34:29 92642 [ERROR] Can't open the mysql.plugin table. Please run mysql_upgrade to create it.
    
    #解决办法:
    /usr/bin/mysql_install_db --user=mysql
    
    Installing MySQL system tables...2022-02-21 14:38:39 0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option (see documentation for more details).
    2022-02-21 14:38:39 0 [Note] Ignoring --secure-file-priv value as server is running with --bootstrap.
    2022-02-21 14:38:39 0 [Note] /usr/sbin/mysqld (mysqld 5.6.51) starting as process 96247 ...
    2022-02-21 14:38:39 96247 [Note] InnoDB: Using atomics to ref count buffer pool pages
    2022-02-21 14:38:39 96247 [Note] InnoDB: The InnoDB memory heap is disabled
    2022-02-21 14:38:39 96247 [Note] InnoDB: Mutexes and rw_locks use GCC atomic builtins
    2022-02-21 14:38:39 96247 [Note] InnoDB: Memory barrier is not used
    2022-02-21 14:38:39 96247 [Note] InnoDB: Compressed tables use zlib 1.2.11
    2022-02-21 14:38:39 96247 [Note] InnoDB: Using linux native AIO
    2022-02-21 14:38:39 96247 [Note] InnoDB: Using CPU crc32 instructionjss
    2022-02-21 14:38:39 96247 [Note] InnoDB: Initializing buffer pool, size = 128.0M
    2022-02-21 14:38:39 96247 [Note] InnoDB: Completed initialization of buffer pool
    2022-02-21 14:38:39 96247 [Note] InnoDB: Highest supported file format is Barracuda.
    2022-02-21 14:38:39 96247 [Note] InnoDB: 128 rollback segment(s) are active.
    2022-02-21 14:38:39 96247 [Note] InnoDB: Waiting for purge to start
    2022-02-21 14:38:39 96247 [Note] InnoDB: 5.6.51 started; log sequence number 1600627
    2022-02-21 14:38:39 96247 [Note] RSA private key file not found: /var/lib/mysql//private_key.pem. Some authentication plugins will not work.
    2022-02-21 14:38:39 96247 [Note] RSA public key file not found: /var/lib/mysql//public_key.pem. Some authentication plugins will not work.
    2022-02-21 14:38:39 96247 [Note] Binlog end
    2022-02-21 14:38:39 96247 [Note] InnoDB: FTS optimize thread exiting.
    2022-02-21 14:38:39 96247 [Note] InnoDB: Starting shutdown...
    2022-02-21 14:38:41 96247 [Note] InnoDB: Shutdown completed; log sequence number 1626007
    OK
    
    Filling help tables...2022-02-21 14:38:41 0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option (see documentation for more details).
    2022-02-21 14:38:41 0 [Note] Ignoring --secure-file-priv value as server is running with --bootstrap.
    2022-02-21 14:38:41 0 [Note] /usr/sbin/mysqld (mysqld 5.6.51) starting as process 96282 ...
    2022-02-21 14:38:41 96282 [Note] InnoDB: Using atomics to ref count buffer pool pages
    2022-02-21 14:38:41 96282 [Note] InnoDB: The InnoDB memory heap is disabled
    2022-02-21 14:38:41 96282 [Note] InnoDB: Mutexes and rw_locks use GCC atomic builtins
    2022-02-21 14:38:41 96282 [Note] InnoDB: Memory barrier is not used
    2022-02-21 14:38:41 96282 [Note] InnoDB: Compressed tables use zlib 1.2.11
    2022-02-21 14:38:41 96282 [Note] InnoDB: Using Linux native AIO
    2022-02-21 14:38:41 96282 [Note] InnoDB: Using CPU crc32 instructions
    2022-02-21 14:38:41 96282 [Note] InnoDB: Initializing buffer pool, size = 128.0M
    2022-02-21 14:38:41 96282 [Note] InnoDB: Completed initialization of buffer pool
    2022-02-21 14:38:41 96282 [Note] InnoDB: Highest supported file format is Barracuda.
    2022-02-21 14:38:41 96282 [Note] InnoDB: 128 rollback segment(s) are active.
    2022-02-21 14:38:41 96282 [Note] InnoDB: Waiting for purge to start
    2022-02-21 14:38:41 96282 [Note] InnoDB: 5.6.51 started; log sequence number 1626007
    2022-02-21 14:38:41 96282 [Note] RSA private key file not found: /var/lib/mysql//private_key.pem. Some authentication plugins will not work.
    2022-02-21 14:38:41 96282 [Note] RSA public key file not found: /var/lib/mysql//public_key.pem. Some authentication plugins will not work.
    2022-02-21 14:38:41 96282 [Note] Binlog end
    2022-02-21 14:38:41 96282 [Note] InnoDB: FTS optimize thread exiting.
    2022-02-21 14:38:41 96282 [Note] InnoDB: Starting shutdown...
    2022-02-21 14:38:43 96282 [Note] InnoDB: Shutdown completed; log sequence number 1626017
    OK
    
    To start mysqld at boot time you have to copy
    support-files/mysql.server to the right place for your system
    
    PLEASE REMEMBER TO SET A PASSWORD FOR THE MySQL root USER !
    To do so, start the server, then issue the following commands:
    
      /usr/bin/mysqladmin -u root password 'new-password'
      /usr/bin/mysqladmin -u root -h docker-ce011162004053.nt12 passworphpd 'new-password'
    
    Alternatively you can run:
    
      /usr/bin/mysql_secure_installation
    
    which will also give you the option of removing the test
    databases and anonymous user created by default.  This is
    strongly recommended for production servers.
    
    See the manual for more instructions.
    
    You can start the MySQL daemon with:
    
      cd /usr ; /usr/bin/mysqld_safe &
    
    You can test the MySQL daemon with mysql-test-run.pl
    
      cd mysql-test ; perl mysql-test-run.pl
    
    Please report any problems at http://bugs.mysql.com/
    
    The latest information about MySQL is available on the web at
    
      http://www.mysql.com
    
    Support MySQL by buying support/licenses at http://shop.mysql.com
    
    New default config file was created as /usr/my.cnf and
    will be used by default by the server when you start it.
    You may edit this file to change server settings
    
    WARNING: Default config file /etc/my.cnf exists on the system
    This file will be read by default by the MySQL server
    If you do not want to use this, either remove it, or use the
    --defaults-file argument to mysqld_safe when starting the server
    
    2.2、
    #mariadb.log中另一个报错
    Can't start server: can't check PID filepath: No such file or directory
    220221 14:34:30 mysqld_safe mysqld from pid file /var/run/mariadb/mariadb.pid ended
    
    解决办法:
    mkdir -p /var/run/mariadb/
    chown -R mysql:mysql /var/run/mariadb/
    
    
    service mysql start  # 正常
    Redirecting to /bin/systemctl start mysql.service
    
    service mysql status  # 正常
    Redirecting to /bin/systemctl status mysql.service
    ● mysqld.service - MySQL Community Server
       Loaded: loaded (/usr/lib/systemd/system/mysqld.service; enabled; vendor preset: disabled)
       Active: active (running) since Mon 2022-02-21 14:54:13 CST; 31min ago
      Process: 112292 ExecStartPost=/usr/bin/mysql-systemd-start post (code=exited, status=0/SUCCESS)
      Process: 112276 ExecStartPre=/usr/bin/mysql-systemd-start pre (code=exited, status=0/SUCCESS)
     Main PID: 112291 (mysqld_safe)
        Tasks: 23
       Memory: 119.3M
       CGroup: /system.slice/mysqld.service
               ├─112291 /bin/sh /usr/bin/mysqld_safe --basedir=/usr
               └─112457 /usr/sbin/mysqld --basedir=/usr --datadir=/var/lib/mysql --plugin-dir=/usr/lib64/mysql/plugin --log-error=/var/log/mariadb/mariadb.log --pid-file=/var/run/mariadb/mariadb.pid --socket=/var/lib/mysql/mysql.sock
    
    Feb 21 14:54:12 xxx systemd[1]: Starting MySQL Community Server...
    Feb 21 14:54:12 xxx mysqld_safe[112291]: 220221 14:54:12 mysqld_safe Logging to '/var/log/mariadb/mariadb.log'.
    Feb 21 14:54:12 xxx mysqld_safe[112291]: 220221 14:54:12 mysqld_safe Starpythonting mysqld daemon with databases from /var/lib/mysql
    
    mysql  # 正常进入
    Welcome to the MySQL monitor.  Commands end with ; or \g.
    Your MySQL connection id is 2
    Server version: 5.6.51 MySQL Community Server (GPL)
    
    Copyright (c) 2000, 2021, oracle and/or its affiliates. All rights reserved.
    
    Oracle is a registered trademark of Oracle Corporation and/or its
    affiliates. Other names may be trademarks of their respective
    owners.
    
    3、
    mysqladmin -u root password   #设置密码
    
    

    四、另一种方法安装

    4.1、安装mysql

    yum -y install mariadb  mariadb-devel  mariadb-server

    4.2、启动mysql 服务

    systemctl start mariadb.service

    4.3、设置密码

    #mysql
    Welcome to the MariaDB monitor.  Commands end with ; or \g.
    Your MariaDB connection id is 5
    Server version: 5.5.68-MariaDB MariaDB Server
    
    Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.
    
    Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
    MariaDB [(none)]> use mysql;
    Reading table information for completion of table and column names
    You can turn off this feature to get a quicker startup with -A
    
    Database changed
    MariaDB [mysql]> select host,user from mysql.user;
    +-----------------------------+------+
    | host                        | user |
    +-----------------------------+------+
    | 127.0.0.1                   | root |
    | ::1                         | root |
    | xxx                  |      |
    | xxx                         | root |
    | localhost                   |      |
    | localhost                   | root |
    +-----------------------------+------+
    6 rows in set (0.00 sec)
    
    MariaDB [mysql]> select user();
    +----------------+
    | user()         |
    +----------------+
    | root@localhost |
    +----------------+
    
    MariaDB [mysql]> UPDATE user SET password=PASSWORD('xxxxx') WHERE user='root';
    Query OK, 4 rows affected (0.00 sec)
    Rows matched: 4  Changed: 4  Warnings: 0
    
    MariaDB [mysql]> flush privileges;
    Query OK, 0 rows affected (0.00 sec)
    
    MariaDB [mysql]> exit;
    Bye
    
    [root@docker-ce011166091186.na131 /home/gyy011675android04]
    #mysql -uroot -p
    Enter password: 
    Welcome to the MariaDB monitor.  Commands end with ; or \g.
    Your MariaDB connection id is 6
    Server version: 5.5.68-MariaDB MariaDB Server
    
    Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.
    
    Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
    
    MariaDB [(none)]> 

    总结

    以上为个人经验,希望能给大家一个参考,也希望大家多多支持编程客栈(www.devze.com)。

    0

    上一篇:

    下一篇:

    精彩评论

    暂无评论...
    验证码 换一张
    取 消

    最新数据库

    数据库排行榜