• CentOS 7.x 卸载删除MariaDB,重新安装,安装MYSQL离线版和源代码


    CentOS 7.x 卸载删除MariaDB

    1、卸载

    [root@node1 ~]# rpm -qa|grep mariadb
    mariadb-5.5.56-2.el7.x86_64
    mariadb-libs-5.5.56-2.el7.x86_64
    mariadb-server-5.5.56-2.el7.x86_64
    [root@node1 ~]#

    用yum进行卸载:

    [root@node1 ~]# yum remove mariadb
    ...
    Removed:
      mariadb.x86_64 1:5.5.56-2.el7                                                                                                                  
    
    Dependency Removed:
      mariadb-server.x86_64 1:5.5.56-2.el7                                                                                                           
    
    Complete!
    [root@node1 ~]#

    卸载完毕之后发现还有lib没有移除掉,直接卸载:

    [root@localhost mysql-5.7.28-linux-glibc2.12-x86_64]# rpm -qa | grep mariadb
    mariadb-libs-5.5.64-1.el7.x86_64
    [root@localhost mysql-5.7.28-linux-glibc2.12-x86_64]# rpm -e --nodeps mariadb-libs-5.5.64-1.el7.x86_64

    2、删除遗留目录

    [root@node1 ~]# ls /etc/my.cnf
    /etc/my.cnf
    [root@node1 ~]# ll /var/lib/mysql/
    total 28700
    -rw-rw---- 1 mysql mysql    16384 May  5 10:31 aria_log.00000001
    -rw-rw---- 1 mysql mysql       52 May  5 10:31 aria_log_control
    -rw-rw---- 1 mysql mysql 18874368 May  5 10:31 ibdata1
    -rw-rw---- 1 mysql mysql  5242880 May  5 10:31 ib_logfile0
    -rw-rw---- 1 mysql mysql  5242880 Oct  6  2017 ib_logfile1
    drwx------ 2 mysql mysql     4096 Oct  6  2017 mysql
    drwx------ 2 mysql mysql     4096 Oct  6  2017 performance_schema
    [root@node1 ~]#
    
    [root@node1 ~]# rm -rf /etc/my.cnf
    [root@node1 ~]# rm -rf /var/lib/mysql/

    3、重新安装

    [root@node1 ~]# yum install -y mariadb mariadb-server
    [root@node1 ~]# systemctl start mariadb
    [root@node1 ~]# systemctl enable mariadb
    [root@node1 ~]# mysql_secure_installation

    安装MYSQL离线版本

     1. 检测mysql是否有相关文件,有的话进行卸载:

    [root@localhost mysql-5.7.28-linux-glibc2.12-x86_64]# rpm -qa | grep mysql
    qt-mysql-4.8.7-3.el7_6.x86_64
    [root@localhost mysql-5.7.28-linux-glibc2.12-x86_64]# rpm -e --nodeps qt-mysql-4.8.7-3.el7_6.x86_64

    2.检查mysql组合用户是否存在:

    # 检查mysql组和用户是否存在,如无则创建
    [root@CDH-141 ~]# cat /etc/group | grep mysql
    [root@CDH-141 ~]# cat /etc/passwd | grep mysql 

    如果存在mysql组,则不需要新增,那么不存在mysql组,就需要新增一个mysql组:

    [root@localhost ~]# groupadd mysql

    如果存在mysql用户,则不需要新增,那么不存在mysql用户,就需要新增一个mysql用户:

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

    修改mysql用户的密码:

    [root@localhost ~]# passwd mysql
    更改用户 mysql 的密码 。
    新的 密码:
    无效的密码: 密码少于 8 个字符
    重新输入新的 密码:
    抱歉,密码不匹配。
    新的 密码:
    无效的密码: 密码包含用户名在某些地方
    重新输入新的 密码:
    抱歉,密码不匹配。
    新的 密码:
    无效的密码: 密码未通过字典检查 - 过于简单化/系统化
    重新输入新的 密码:
    抱歉,密码不匹配。
    passwd: 已经超出服务重试的最多次数

     3. 下载离线包

    https://dev.mysql.com/downloads/mysql/

    4. 上传离线包

    [root@localhost src]# pwd
    /usr/local/src
    [root@localhost src]# rz

    解压离线包

    [root@localhost src]# tar -zxvf mysql-5.7.28-linux-glibc2.12-x86_64.tar.gz

    修改解压包的名称,并移动到/usr/local目录下去

    [root@localhost src]# mv mysql-5.7.28-linux-glibc2.12-x86_64 /usr/local/mysql

    5. 更改mysql文件夹的所属组和所属用户为mysql.mysql:

    # 更改所属的组和用户
    [root@CDH-141 local]# chown -R mysql.mysql mysql/
    [root@CDH-141 local]# cd mysql/
    [root@CDH-141 mysql57]# mkdir data
    [root@CDH-141 mysql57]# chown -R mysql.mysql data

    6.在/etc/目录下创建一个my.cnf文件:参考:https://www.cnblogs.com/jiangxiaobo/p/11734294.html

    [mysql]
    # 设置mysql客户端默认字符集
    default-character-set=utf8 
    socket=/var/lib/mysql/mysql.sock
    
    [mysqld]
    skip-name-resolve
    # 设置3306端口
    port = 3306 
    socket=/var/lib/mysql/mysql.sock
    # 设置mysql的安装目录
    basedir=/usr/local/mysql
    # 设置mysql数据库的数据的存放目录
    datadir=/usr/local/mysql/data
    # 允许最大连接数
    max_connections=200
    # 服务端使用的字符集默认为8比特编码的latin1字符集
    character-set-server=utf8
    # 创建新表时将使用的默认存储引擎
    default-storage-engine=INNODB
    # 解决表名大小写问题 lower_case_table_names
    =1 max_allowed_packet=16M

     注意这个步骤必须要创建 socket所在目录

    mkdir /var/lib/mysql/

    basedir肯datadir按自己实际需求的配置。

    其他默认配置参考:

    [root@localhost ~]# ps -ef | grep mysql
    root       1640      1  0 22:06 ?        00:00:00 /bin/sh /usr/local/mysql/bin/mysqld_safe 
    --datadir=/usr/local/mysql/data
    --pid-file=/usr/local/mysql/data/localhost.localdomain.pid mysql 1844 1640 1 22:06 ? 00:00:00 /usr/local/mysql/bin/mysqld
    --basedir=/usr/local/mysql
    --datadir=/usr/local/mysql/data
    --plugin-dir=/usr/local/mysql/lib/plugin
    --user=mysql
    --log-error=localhost.localdomain.err
    --pid-file=/usr/local/mysql/data/localhost.localdomain.pid

     查看mysql服务启动时候读取配置文件列表

    1.首先通过which mysqld查找到该mysqld路径,然后cd到该目录。

    2.键入 mysqld --verbose --help |grep -A 1 'Default options'命令来查看mysql使用的配置文件默认路径

    windows下查看mysql读取配置文件的目录
    mysql --help | findstr my.cnf
    
    
    linux下查看mysql读取配置文件的目录
    mysql --help | grep 'mysql.cnf'

    7.进入mysql文件夹安装mysql:

    其实只需要命令:

    bin/mysqld --initialize --user=mysql

    但是也可以补充,未补充的配置读取/etc/my.cnf文件

    [root@localhost mysql57]# bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql/ --datadir=/usr/local/mysql/data/
    2020-02-20T14:27:21.844182Z 0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option (see documentation for more details).
    2020-02-20T14:27:23.526945Z 0 [Warning] InnoDB: New log files created, LSN=45790
    2020-02-20T14:27:23.705978Z 0 [Warning] InnoDB: Creating foreign key constraint system tables.
    2020-02-20T14:27:23.800981Z 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: 1c750f6b-53ed-11ea-bc05-000c29d18f42.
    2020-02-20T14:27:23.803068Z 0 [Warning] Gtid table is not ready to be used. Table 'mysql.gtid_executed' cannot be opened.
    2020-02-20T14:27:24.224645Z 0 [Warning] CA certificate ca.pem is self signed.
    2020-02-20T14:27:24.380345Z 1 [Note] A temporary password is generated for root@localhost: p&fI(feaA6-=

    安装成功了,关于后续操作请参考之前在线安装Mysql细节:https://www.cnblogs.com/jiangxiaobo/p/11734294.html

    1、授予my.cnf权限
    chmod 777 /etc/my.cnf
    设置开机自启动服务控制脚本:
    2、复制启动脚本到资源目录
    cd /usr/local/mysql
    [root@localhost mysql]# cp ./support-files/mysql.server /etc/rc.d/init.d/mysqld
    3、增加mysqld服务控制脚本执行权限 
    [root@localhost mysql]# chmod +x /etc/rc.d/init.d/mysqld
    4、将mysqld服务加入到系统服务 
    [root@localhost mysql]# chkconfig --add mysqld
    5、检查mysqld服务是否已经生效
    [root@localhost mysql]# chkconfig --list mysqld
    命令输出类似下面的结果:
    mysqld 0:off 1:off 2:on 3:on 4:on 5:on 6:off
    表明mysqld服务已经生效,在2、34、5运行级别随系统启动而自动启动,以后可以使用service命令控制mysql的启动和停止
    命令为:service mysqld start和service mysqld stop
    6、启动mysqld 
    [root@localhost mysql]# service mysqld start
    或者
    /etc/rc.d/init.d/mysql start
    
    7、将mysql的bin目录加入PATH环境变量,编辑 ~/.bash_profile文件
    [root@localhost mysql]# vim ~/.bash_profile
    在文件最后添加如下信息:
    export PATH=$PATH:/usr/local/lnmp/mysql/bin
    执行下面的命令是修改的内容立即生效:
    [root@localhost mysql]# source ~/.bash_profile
    8、以root账户登录mysql
    [root@localhost mysql]# mysql -uroot -p
    要输入密码的时候直接回车即可。
    9、设置root账户密码为root(也可以修改成你要的密码)
    set password for root@localhost=password("你的密码");
    如果忘记密码:请在配置文件加上
    [mysqld]
    # 忘记密码请解开下面注释
    # skip-grant-tables
    密码修改后,将这行配置注释掉重启就可以了。

    创建系统服务,系统自启动

    10、设置远程主机登录,注意下面的your username 和 your password改成你需要设置的用户和密码

    mysql>GRANT ALL PRIVILEGES ON *.* TO 'your username'@'%' IDENTIFIED BY 'your password' WITH GRANT OPTION;

    host xxx is not allowed to connect to this MYSQL server关于细节请查看:https://www.cnblogs.com/lizm166/p/7838862.html

    你想root使用123456从任何主机连接到mysql服务器的话,代码如下:
    GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '123456' WITH GRANT OPTION;
    
    如果你想允许用户root从ip为192.168.1.3的主机连接到mysql服务器,并使用123456作为密码,代码如下:
    GRANT ALL PRIVILEGES ON *.* TO ‘root’@’192.168.1.3′ IDENTIFIED BY ’123456′ WITH GRANT OPTION;
    
     Mysql> flush privileges

    11. 如果自己想建立MYSQL用户:

    【如果记得root的账号密码,就可以不设置这步】设置跳过密码登陆root用户

    vim /etc/my.cnf
    
    [mysqld]
    # 忘记密码请解开下面注释
    # skip-grant-tables

    登陆

    mysql -u root -p

    完成以上流程就实现了一个基本的用户生成并配置权限,如果需要控制用的CURD操作更改相关的权限即可

    1、创建用户:CREATE USER 'username'@'host' IDENTIFIED BY 'password';
    
    username:用户名;
    
    host:指定在哪个主机上可以登录,本机可用localhost,%通配所有远程主机;
    
    password:用户登录密码;
    
    举例:
    CREATE USER 'test'@'%' IDENTIFIED BY 'I6FVIavxZl8Dkjhn';
    
    
    2、授权:GRANT ALL PRIVILEGES ON  *.* TO 'username'@'%' IDENTIFIED BY 'password’;
    
    格式:grant 权限 on 数据库名.表名 to 用户@登录主机 identified by "用户密码"*.* 代表所有权;
    
    @ 后面是访问MySQL的客户端IP地址(或是 主机名) % 代表任意的客户端,如果填写 localhost 为本地访问(那此用户就不能远程访问该mysql数据库了)。
    
    举例:
    
    GRANT ALL PRIVILEGES ON  *.* TO 'test'@'%' IDENTIFIED BY 'I6FVIavxZl8Dkjhn'; #任意客户端可以,但是本地是不能连接的,所以还需要一句
    GRANT ALL PRIVILEGES ON  *.* TO 'test'@'localhost' IDENTIFIED BY 'I6FVIavxZl8Dkjhn'; #执行这两句话,才能让test用户即可以在不同客户端和本地进行使用MYSQL
    
    
    
    3、刷新权限:FLUSH PRIVILEGES;
  • 相关阅读:
    Ionic开发手机App常用的软件
    Windows的Ionic环境配置
    百度静态资源公共库
    我的程序员之路
    angular.bind
    响应式布局之使用bootstrap
    初识bootstrap
    使用css3实现响应式布局
    mysql-阅读笔记1
    mysql优化
  • 原文地址:https://www.cnblogs.com/jiangxiaobo/p/12337026.html
Copyright © 2020-2023  润新知