zoukankan      html  css  js  c++  java
  • Linux下安装MySQL

    、安装MYSQL之前需要安装JDK( https://www.cnblogs.com/yuezc/p/12102638.html)。

    1.卸载系统自带的Mariadb

    打开Terminal/shell终端:

    [root@localhost ~]# rpm -qa|grep mariadb  // 查询出来已安装的mariadb

    [root@localhost ~]# rpm -e --nodeps 文件名  // 卸载mariadb,文件名为上述命令查询出来的文件

    2. 在etc目录下的my.cnf文件

    [root@localhost ~]# touch /etc/my.cnf5.7的版本中不存在此文件,需要创建它,因为这是mysql的配置文件

    3. 执行以下命令来创建mysql用户组

    [root@localhost ~]# groupadd mysql

    4. 执行以下命令来创建一个用户名为mysql的用户并加入mysql用户组

    [root@localhost ~]# useradd -g mysql mysql

    一、安装mysql。

    1、准备好安装的mysql,我所使用的的是 mysql-5.7.27-linux-glibc2.12-x86_64.tar.gz 版本。

    下载地址:https://dev.mysql.com/downloads/mysql/

    2、在本地(windows)上传,使用FTP工具。记得上传至root用户下,如果再普通用户下,请注意权限配置,可能会有无权限移动、复制以及解压缩等。

    3、在将压缩包移动至想要安装的位置,例如在/usr/local/mysql目录下。

    [root@localhost ~]# ls
    anaconda-ks.cfg              Desktop    Downloads             jdk-7u80-linux-x64.tar.gz  mysql-5.7.27-linux-glibc2.12-x86_64.tar.gz  Public     Videos
    apache-tomcat-7.0.96.tar.gz  Documents  initial-setup-ks.cfg  Music                      Pictures                                    Templates
    [root@localhost ~]# mv mysql-5.7.27-linux-glibc2.12-x86_64.tar.gz  /usr/local/mysql
    (mysql目录并不存在,需要手动创建:mkdir mysql 如下操作)
    [root@localhost ~]# cd /usr/local/
    [root@localhost local]# mkdir mysql

    创建完成并完成移动后,再解压压缩包。如下“进入mysql目录,再解压GZ格式的文件”

    [root@localhost local]# cd mysql
    [root@localhost mysql]# tar -zxvf mysql-5.7.27-linux-glibc2.12-x86_64.tar.gz
    在查看,会有该目录

      [root@localhost mysql]# ls
      mysql-5.7.27-linux-glibc2.12-x86_64

    4、配置my.cnf文件,

    授予my.cnf最大权限

    [root@localhost ~]# chmod 664 /etc/my.cnf

    如下:这些是我个人的配置。用户是root,一般不推荐使用默认设置为mysql

    [client]
    socket=/usr/local/mysql/mysql-5.7.27-linux-glibc2.12-x86_64/mysql.sock
    [mysqld]
    port=3306
    user=root
    basedir=/usr/local/mysql/mysql-5.7.27-linux-glibc2.12-x86_64/
    datadir=/usr/local/mysql/mysql-5.7.27-linux-glibc2.12-x86_64/data
    socket=/usr/local/mysql/mysql-5.7.27-linux-glibc2.12-x86_64/mysql.sock
    pid-file=/usr/local/mysql/mysql-5.7.27-linux-glibc2.12-x86_64/data/mysqld.pid
    log-error=/usr/local/mysql/mysql-5.7.27-linux-glibc2.12-x86_64/mysql.err
    sql-mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION

    配置完成后。运行该命令:source  /etc/my.cnf   确保生效。

    上述配置文件,里面的基本都是安装的文件的物理路径。注意:datadir=/usr/local/mysql/mysql-5.7.27-linux-glibc2.12-x86_64/data 这个里面的data是不存在的,需要在这个的目录下自己创建。

    5、给mysql文件给予去权限:

    [root@localhost local]# ls
    bin  etc  games  include  jdk  kettle  lib  lib64  libexec  mysql  sbin  share  src  tomcat
    [root@localhost local]# chmod 765 mysql

    6、然后进入到 :/usr/local/mysql/mysql-5.7.27-linux-glibc2.12-x86_64/ 目录,更改mysql目录下所有的目录及文件夹所属的用户组和用户:

    [root@localhost /]# chown -R root:root /usr/local/mysql/mysql-5.7.27-linux-glibc2.12-x86_64 (因为我在配置文件中,设置的user=root)

    7、编译安装并初始化mysql,务必记住初始化输出日志末尾的密码

    如果不进行此步骤,会在启动时报错:

    2020-08-05T07:26:53.324788Z 0 [Note] Plugin 'FEDERATED' is disabled.
    mysqld: Table 'mysql.plugin' doesn't exist

    一般找错误需要到错误日志中查看,而如何让错误出现在指定的日志文件,需要在my.cnf中配置,且在安装目录下创建此文件mysql.err

    [root@localhost mysql5727]# cat /etc/my.cnf 
    [client]
    socket=/usr/local/mysql5727/mysql.sock
    [mysqld]
    port=3306
    user=root
    basedir=/usr/local/mysql5727
    datadir=/usr/local/mysql5727/data
    socket=/usr/local/mysql5727/mysql.sock
    pid-file=/usr/local/mysql5727/data/mysqld.pid
    log-error=/usr/local/mysql5727/mysql.err
    sql-mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
    default_password_lifetime=0

    编译安装并初始化mysql的命令:

    [root@localhost mysql-5.7.27-linux-glibc2.12-x86_64]# cd bin
    [root@localhost bin]# ./mysqld --defaults-file=/etc/my.cnf  --basedir=/usr/local/mysql/mysql-5.7.27-linux-glibc2.12-x86_64/  --datadir=/usr/local/mysql/mysql-5.7.27-linux-glibc2.12-x86_64/data --user=root --initialize

    如果未出现初始密码,但后续可以正常启动mysql,在这一步无需担心。

    二、设置开机自启动服务控制脚本:

    1、复制启动脚本到资源目录 

    [root@localhost mysql-5.7.27-linux-glibc2.12-x86_64]# cp ./support-files/mysql.server /etc/rc.d/init.d/mysqld

    2、增加mysqld服务控制脚本执行权限

    [root@localhost mysql-5.7.27-linux-glibc2.12-x86_64]# chmod +x /etc/rc.d/init.d/mysqld

    3、将mysqld服务加入到系统服务

    [root@localhost mysql-5.7.27-linux-glibc2.12-x86_64]# chkconfig --add mysqld

    4、检查mysqld服务是否已经生效

     [root@localhost mysql-5.7.27-linux-glibc2.12-x86_64]# chkconfig --list mysqld

    命令输出类似下面的结果:

    mysqld 0:off 1:off 2:on 3:on 4:on 5:on 6:off

    表明mysqld服务已经生效,在2345运行级别随系统启动而自动启动,以后可以使用service命令控制mysql的启动和停止

    命令为:service mysqld start和service mysqld stop

    5、启动mysqld

     [root@localhost mysql-5.7.27-linux-glibc2.12-x86_64]# service mysqld start

    启动可能很会报错。请注意。

    6、将mysqlbin目录加入PATH环境变量,编辑 ~/.bash_profile文件

    [root@localhost mysql]# vim ~/.bash_profile

    在文件最后添加如下信息:

    export PATH=$PATH:/usr/local/mysql/bin

    然后按ESC

    继续 shift键加冒号打出来=>  

    接下来输入wq回车即可

    执行下面的命令是修改的内容立即生效:

    [root@localhost mysql]# source ~/.bash_profile

    7、以root账户登录mysql,默认是没有密码的

    [root@localhost mysql]# mysql -uroot -p

    要输入密码的时候直接回车即可。

    如果不成功或之前没出现密码,则需要单独设置操作一下:

    1、初始密码在/var/log/mysqld.log这个文件里
    2、输入命令:grep 'temporary password' /var/log/mysqld.log,可以直接获取密码。
    (注:密码为冒号后面的所有字符!)
    如果想要更换初始密码,可以按照下面的操作。
    在/etc/my.cnf中加入如下内容:
    在[mysqld]下添加skip-grant-tables,然后保存并退出。这句意思其实是,无密码登录。
    然后重启mysql服务
    systemctl restart mysqld
    a、重启以后,执行mysql命令进入mysql命令行
    b、修改root用户密码
    MySQL> update mysql.user set authentication_string=password('123456') where user='root';
    MySQL> flush privileges;
    MySQL> exit;
    c、最后把/etc/my.cnf中的skip-grant-tables注释掉,然后重启mysql,即:service mysqld restart

    8、设置root账户密码为root(也可以修改成你要的密码)

    mysql>use mysql;
    mysql> update
    mysql.user set authentication_string=password('sdrs3721') where user='root';
    mysql>flush privileges;

    这个成功之后,基本就完成了mysql的安装。但还有其他的需要设置

    9、开启远程连接:

    mysql>use mysql;
    msyql>update user set user.Host='%' where user.User='root';
    mysql>flush privileges;

    10、如果再远程连接数据库是报10038的错误,则需要将数据库的端口配置在防火墙中:https://www.cnblogs.com/yuezc/p/12518943.html

    11、如果在登录成功后,报如下错误:

    mysql> use mysql;
    ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing this statement.

    需要修改密码,方式如下:

    mysql> SET PASSWORD = PASSWORD('123456');
    Query OK, 0 rows affected, 1 warning (0.01 sec)
    
    mysql> flush privileges;
    Query OK, 0 rows affected (0.01 sec)
    
    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
  • 相关阅读:
    016 Spark中关于购物篮的设计,以及优化(两个点)
    015 在Spark中关于groupByKey与reduceByKey的区别
    014 在Spark中完成PV与UV的计算,重在源代码
    013 Spark中的资源调优
    012 Spark在IDEA中打jar包,并在集群上运行(包括local模式,standalone模式,yarn模式的集群运行)
    混淆Android JAR包的方法
    学会Retrofit+OkHttp+RxAndroid三剑客的使用,让自己紧跟Android潮流的步伐
    Android 使用OpenCV的三种方式(Android Studio)
    OpenCV图片拼接的两种方法
    yuv转opencv中的IplImage
  • 原文地址:https://www.cnblogs.com/yuezc/p/12693224.html
Copyright © 2011-2022 走看看