zoukankan      html  css  js  c++  java
  • linux下安装mysql

    1、查看系统版本,显示我的系统是64位

    [root@iz2zedr8770rctry7tq8t7z ~]# uname -a
    Linux iz2zedr8770rctry7tq8t7z 3.10.0-514.26.2.el7.x86_64 #1 SMP Tue Jul 4 15:04:05 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux
    [root@iz2zedr8770rctry7tq8t7z ~]# 

    2、检查是否安装过mysql,我这里显示没有安装过

    [root@iz2zedr8770rctry7tq8t7z ~]#  rpm -qa | grep mysql
    [root@iz2zedr8770rctry7tq8t7z ~]#

      如果安装过,需要卸载,参考博客:https://www.jianshu.com/p/276d59cbc529

    3、下载mysql

    在官网:http://dev.mysql.com/downloads/mysql/ 中,选择合适版本的mysql下载:  可以命令行下载,也可以下载完安装包以后,传到linux下

    [root@iz2zedr8770rctry7tq8t7z ~]# wget https://dev.mysql.com/get/Downloads/MySQL-5.6/mysql-5.6.46-linux-glibc2.12-x86_64.tar.gz

     4、安装

    a:解压安装包

    [root@iz2zedr8770rctry7tq8t7z ~]# ls   #解压后目录如下
    mysql-5.6.46-linux-glibc2.12-x86_64  mysql-5.6.46-linux-glibc2.12-x86_64.tar.gz
    [root@iz2zedr8770rctry7tq8t7z ~]# mv mysql-5.6.46-linux-glibc2.12-x86_64 mysql #目录名太长,重命名
    [root@iz2zedr8770rctry7tq8t7z ~]# ls
    mysql  mysql-5.6.46-linux-glibc2.12-x86_64.tar.gz

    b:添加mysql用户组和mysql用户

      先检查是否有mysql用户组和mysql用户,我这里是没有的

    [root@iz2zedr8770rctry7tq8t7z mysql]# groups mysql
    groups: mysql: no such user

      创建用户和用户组

    [root@iz2zedr8770rctry7tq8t7z mysql]# groupadd mysql
    [root@iz2zedr8770rctry7tq8t7z mysql]# useradd -r -g mysql mysql
    [root@iz2zedr8770rctry7tq8t7z mysql]# groups mysql
    mysql : mysql

      将安装目录所有者及所属组改为mysql ,这个根据自己的目录来,我安装到了root目录下,是自己用来练习的

    [root@iz2zedr8770rctry7tq8t7z mysql]# chown -R mysql.mysql /root/mysql

      编译安装并初始化mysql,务必记住初始化输出日志末尾的密码(数据库管理员临时密码)

    [root@iz2zedr8770rctry7tq8t7z bin]# /root/mysql/bin/mysqld --user=mysql --basedir=/root/mysqll --datadir=/root/mysql/data --initialize
    /root/mysql/bin/mysqld: error while loading shared libraries: libaio.so.1: cannot open shared object file: No such file or directory

      安装过程中,遇到了如上错误,安装如下模块

    [root@iz2zedr8770rctry7tq8t7z bin]# yum install libaio

      上面问题解决了,又出现了如下问题,查找网上的解决办法,指定--datadir=/root/mysql/data,我本身初始化就指定了。还有说将my.cnf中read only注释掉,我的cnf文件本身就没有

    [ERROR] Can't open the mysql.plugin table. Please run mysql_upgrade to create it.

    5、由于报错没解决,自己也不会解决,于是简单粗暴的删除,重新安装

      完全按照博客:https://www.jianshu.com/p/276d59cbc529 安装

      编译安装并初始化mysql,务必记住初始化输出日志末尾的密码(数据库管理员临时密码),是成功的(_oz0u4sfKJ(d)

    [root@iz2zedr8770rctry7tq8t7z bin]# ./mysqld --initialize --user=mysql --datadir=/usr/local/mysql/data --basedir=/usr/local/mysql
    2019-12-17T02:55:45.321270Z 0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option (see documentation for more details).
    2019-12-17T02:55:56.116276Z 0 [Warning] InnoDB: New log files created, LSN=45790
    2019-12-17T02:55:57.622633Z 0 [Warning] InnoDB: Creating foreign key constraint system tables.
    2019-12-17T02:55:57.767239Z 0 [Warning] No existing UUID has been found, so we assume that this is the first time that this server has been started. Generating a new UUID: c000ee56-2078-11ea-8e2b-00163e14ed06.
    2019-12-17T02:55:57.770174Z 0 [Warning] Gtid table is not ready to be used. Table 'mysql.gtid_executed' cannot be opened.
    2019-12-17T02:55:57.770767Z 1 [Note] A temporary password is generated for root@localhost: _oz0u4sfKJ(d

    6、编辑配置文件,编辑配置文件my.cnf,添加配置如下

    [root@localhost bin]#  vi /etc/my.cnf
    
    [mysqld]
    datadir=/usr/local/mysql/data
    socket=/var/lib/mysql/mysql.sock
    # Disabling symbolic-links is recommended to prevent assorted security risks
    symbolic-links=0
    # Settings user and group are ignored when systemd is used.
    # If you need to run mysqld under a different user or group,
    # customize your systemd unit file for mariadb according to the
    # instructions in http://fedoraproject.org/wiki/Systemd
    port = 3306
    sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
    max_connections=400
    innodb_file_per_table=1
    #表名大小写不明感,敏感为
    lower_case_table_names=1


    [mysqld_safe]
    log-error=/var/log/mariadb/mariadb.log
    pid-file=/var/run/mariadb/mariadb.pid

    7、启动服务,报错

    [root@iz2zedr8770rctry7tq8t7z mysql]# cd support-files/
    [root@iz2zedr8770rctry7tq8t7z support-files]# ls
    magic  mysqld_multi.server  mysql-log-rotate  mysql.server
    [root@iz2zedr8770rctry7tq8t7z support-files]# ./mysql.server start
    Starting MySQL.2019-12-17T03:03:23.540783Z mysqld_safe error: log-error set to '/var/log/mariadb/mariadb.log', however file don't exists. Create writable for user 'mysql'.
    The server quit without updating PID file (/usr/local/mysql[FAILED]2zedr8770rctry7tq8t7z.pid).

      解决办法:查找发现确实没有/var/log/mariadb/mariadb.log这个文件,新建并更改其用户组即可

    [root@iz2zedr8770rctry7tq8t7z var]# cd log
    [root@iz2zedr8770rctry7tq8t7z log]# ls
    anaconda        cron-20191124                 grubby              maillog-20191208   multi-nic-util   secure-20191202   spooler-20191215
    audit           cron-20191202                 grubby_prune_debug  maillog-20191215   ntp.log          secure-20191208   tallylog
    boot.log        cron-20191208                 journal             messages           ntpstats         secure-20191215   tuned
    btmp            cron-20191215                 lastlog             messages-20191124  ppp              spooler           wpa_supplicant.log
    btmp-20191201   dmesg                         maillog             messages-20191202  sa               spooler-20191124  wtmp
    cloud-init.log  dmesg.old                     maillog-20191124    messages-20191208  secure           spooler-20191202  yum.log
    cron            ecs_network_optimization.log  maillog-20191202    messages-20191215  secure-20191124  spooler-20191208
    [root@iz2zedr8770rctry7tq8t7z log]# mkdir mariadb
    [root@iz2zedr8770rctry7tq8t7z log]# cd mariadb/
    [root@iz2zedr8770rctry7tq8t7z mariadb]# touch mariadb.log
    [root@iz2zedr8770rctry7tq8t7z mariadb]# cd ..
    [root@iz2zedr8770rctry7tq8t7z log]# chown -R mysql:mysql /var/log/mariadb/

      再次启动服务,继续报错,伤心。var/lib/mysql”目录不存在

    [root@iz2zedr8770rctry7tq8t7z support-files]# ./mysql.server start
    Starting MySQL.2019-12-17T03:13:27.055391Z mysqld_safe Directory '/var/lib/mysql' for UNIX socket file don't exists.
    The server quit without updating PID file (/usr/local/mysql[FAILED]2zedr8770rctry7tq8t7z.pid).

      解决

    [root@iz2zedr8770rctry7tq8t7z lib]# mkdir mysql
    [root@iz2zedr8770rctry7tq8t7z lib]# ls
    alternatives  cloud  dhclient  games      logrotate  misc   NetworkManager  os-prober  polkit-1  rpm        rsyslog    systemd  yum
    authconfig    dbus   dnsmasq   initramfs  machines   mysql  ntp             plymouth   postfix   rpm-state  stateless  tpm
    [root@iz2zedr8770rctry7tq8t7z lib]# chmod 777  /var/lib/mysql

      再次启动服务,终于起来了,安装成功

    [root@iz2zedr8770rctry7tq8t7z support-files]# ./mysql.server start
    Starting MySQL....                                         [  OK  ]

    8、添加软链接,并重启mysql服务

    [root@iz2zedr8770rctry7tq8t7z support-files]# ln -s /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql
    [root@iz2zedr8770rctry7tq8t7z support-files]# ln -s /usr/local/mysql/bin/mysql /usr/bin/mysql
    [root@iz2zedr8770rctry7tq8t7z support-files]# service mysql restart
    Shutting down MySQL..                                      [  OK  ]
    Starting MySQL..                                           [  OK  ]

    9、登录mysql,修改密码(使用临时密码)。没错,又报错了

    [root@iz2zedr8770rctry7tq8t7z support-files]# mysql -u root -p
    Enter password:
    ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)

      解决办法:修改my.cnf配置文件,添加client 。参考:https://blog.csdn.net/zhizhengguan/article/details/86686930

    [mysqld]
    datadir=/usr/local/mysql/data
    socket=/var/lib/mysql/mysql.sock
    # Disabling symbolic-links is recommended to prevent assorted security risks
    symbolic-links=0
    # Settings user and group are ignored when systemd is used.
    # If you need to run mysqld under a different user or group,
    # customize your systemd unit file for mariadb according to the
    # instructions in http://fedoraproject.org/wiki/Systemd
    port = 3306
    sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
    max_connections=400
    innodb_file_per_table=1
    #表名大小写不明感,敏感为
    lower_case_table_names=1
    
    
    [mysqld_safe]
    log-error=/var/log/mariadb/mariadb.log
    pid-file=/var/run/mariadb/mariadb.pid
    
    [client]
    port=3306
    socket=/var/lib/mysql/mysql.sock

    10、重新启动并登陆,登陆成功了

    [root@iz2zedr8770rctry7tq8t7z support-files]# service mysql restart
    Shutting down MySQL..                                      [  OK  ]
    Starting MySQL..                                           [  OK  ]
    [root@iz2zedr8770rctry7tq8t7z support-files]#  mysql -u root -p
    Enter password:
    Welcome to the MySQL monitor.  Commands end with ; or g.
    Your MySQL connection id is 2
    Server version: 5.7.24
    
    Copyright (c) 2000, 2018, 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.
    
    Type 'help;' or 'h' for help. Type 'c' to clear the current input statement.
    
    mysql>

    11、修改密码

    mysql> set password=password('123456');
    Query OK, 0 rows affected, 1 warning (0.00 sec)

    12、开放远程链接

    mysql> 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
    mysql> update user set user.Host='%' where user.User='root';
    Query OK, 1 row affected (0.00 sec)
    Rows matched: 1  Changed: 1  Warnings: 0
    
    mysql> flush privileges;
    Query OK, 0 rows affected (0.00 sec)

    13、设置开机自动启动

    1、将服务文件拷贝到init.d下,并重命名为mysql
    [root@localhost /]# cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld
    2、赋予可执行权限
    [root@localhost /]# chmod +x /etc/init.d/mysqld
    3、添加服务
    [root@localhost /]# chkconfig --add mysqld
    4、显示服务列表
    [root@localhost /]# chkconfig --list

    注:看到有的博客在步骤7前,修改系统配置文件,可能这就是我各种报错的原因,参考博客:https://www.cnblogs.com/fanshudada/p/9781794.html

    #cd /usr/local/mysql/support-files

    # cp my-default.cnf /etc/my.cnf
    # cp mysql.server /etc/init.d/mysql

    # vim /etc/init.d/mysql

  • 相关阅读:
    C语言II博客作业03
    C语言II博客作业02
    C语言II博客作业01
    学期总结
    C语言I博客作业08
    C语言I博客作业07
    C语言I博客作业06
    C语言|博客作业05
    C语言I博客作业04
    【lhyaaa】2020深圳大湾区比赛总结
  • 原文地址:https://www.cnblogs.com/hzgq/p/12050517.html
Copyright © 2011-2022 走看看