• Centos7安装mysql


    1、检查系统是否安装过mysql
    //检查系统中有无安装过mysql
    rpm -qa|grep mysql

    //查询所有mysql 对应的文件夹,全部删除
    whereis mysql
    find / -name mysql
    2、卸载CentOS7系统自带mariadb
    复制代码

    查看系统自带的Mariadb

    [root@CDH-141 ~]# rpm -qa|grep mariadb
    mariadb-libs-5.5.44-2.el7.centos.x86_64

    卸载系统自带的Mariadb

    [root@CDH-141 ~]# rpm -e --nodeps mariadb-libs-5.5.44-2.el7.centos.x86_64

    删除etc目录下的my.cnf ,一定要删掉,等下再重新建,之前我将就用这个文件,后面改配置各种不生效

    [root@CDH-141 ~]# rm /etc/my.cnf
    复制代码
    3、检查有无安装过mysql 用户组,没有的话创建
    复制代码
    //检查mysql 用户组是否存在
    cat /etc/group | grep mysql
    cat /etc/passwd |grep mysql

    // 创建mysql 用户组和用户
    groupadd mysql
    useradd -r -g mysql mysql
    复制代码
    4、下载安装,从官网安装下载,我下载的位置在/usr/local/
    wget https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.31-linux-glibc2.12-x86_64.tar.gz

    5、解压安装mysql
    tar -zxvf mysql-5.7.31-linux-glibc2.12-x86_64.tar.gz

    顺便改一下名字mv mysql-5.7.31-linux-glibc2.12-x86_64 mysql

    6、更改mysql 目录下所有文件夹所属的用户组和用户,以及权限
    chown -R mysql:mysql /usr/local/mysql
    chmod -R 755 /usr/local/mysql

    7、进入mysql/bin/目录,编译安装并初始化mysql,务必记住数据库管理员临时密码

    ./mysqld --initialize --user=mysql --datadir=/usr/local/mysql/data --basedir=/usr/local/mysq

    8、编写配置文件 my.cnf ,并添加配置

    进入配置文件
    vi /etc/my.cnf
    在插入模式下编写,完成后保存,当然这个可以自己添加,

    复制代码
    [mysqld]
    datadir=/usr/local/mysql/data
    port = 3306
    sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
    symbolic-links=0
    max_connections=400
    innodb_file_per_table=1

    表名大小写不明感,敏感为

    lower_case_table_names=1
    复制代码
    9、启动mysql 服务器

    复制代码

    查询服务

    ps -ef|grep mysql
    ps -ef|grep mysqld

    结束进程

    kill -9 PID

    启动服务

    /usr/local/mysql/support-files/mysql.server start
    复制代码

    10、添加软连接,并重启mysql 服务

    //添加软连接
    ln -s /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql
    ln -s /usr/local/mysql/bin/mysql /usr/bin/mysql

    //重启mysql服务
    service mysql restart
    11、登录mysql ,密码就是初始化时生成的临时密码

    mysql -u root -p

    12、修改密码,因为生成的初始化密码难记

    注意: 分号(;) 结尾

    set password for root@localhost = password('root');
    12、开放远程连接

    use mysql;
    update user set user.Host='%' where user.User='root';
    flush privileges;
    13、设置开机自启

    复制代码
    //将服务文件拷贝到init.d下,并重命名为mysql
    cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld
    //赋予可执行权限
    chmod +x /etc/init.d/mysqld
    //添加服务
    chkconfig --add mysqld
    //显示服务列表
    chkconfig --list
    复制代码

    生活不止眼前的苟且,还有诗和远方

    Navicat链接报错:
    在my.cnf配置文件中的[mysqld]区域添加skip-name-resolve

    参考:https://www.cnblogs.com/wpnr/p/14072634.html
    参考:https://www.cnblogs.com/kevingrace/p/6196885.html

    环境:CentOS7+mysql5.7
    1、mariadb卸载(若存在)
    通过 rpm -qa | grep mariadb 命令查看 mariadb 的安装包
    通过 rpm -e mariadb-libs-5.5.56-2.el7.x86_64 --nodeps 命令装卸 mariadb
    通过 rpm -qa | grep mariadb 命令再次查看 mariadb 的安装包
    2、安装mysql
    执行:
    yum -y install wget
    wget -i -c http://dev.mysql.com/get/mysql57-community-release-el7-10.noarch.rpm
    yum -y install mysql57-community-release-el7-10.noarch.rpm
    之后就开始安装MySQL服务器。
    yum -y install mysql-community-server
    3、MySQL数据库设置
    systemctl start mysqld.service
    查看MySQL运行状态,运行状态如图:
    systemctl status mysqld.service

    通过如下命令可以在日志文件中找出密码:
    grep "password" /var/log/mysqld.log
     如下命令进入数据库:
    mysql -uroot -p
    输入初始密码,此时不能做任何事情,因为MySQL默认必须修改密码之后才能操作数据库:
    mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'root';
    查看 mysql 的安装包
    rpm -qa | grep mysql

    4、 开启mysql的远程访问
    GRANT ALL PRIVILEGES ON . TO 'root'@'%' IDENTIFIED BY 'root' WITH GRANT OPTION;
    flush privileges;
    exit;
    5、防火墙设置
    通过以下命令,关闭 firewall:
    systemctl stop firewalld.service;
    systemctl disable firewalld.service;
    systemctl mask firewalld.service;
    安装 iptables 防火墙
    yum -y install iptables-services
    通过以下命令启动设置防火墙:
    systemctl enable iptables;
    systemctl start iptables;
    编辑防火墙,添加端口
    vim /etc/sysconfig/iptables

    点击 i 键进入插入模式
    在相关位置,写入以下内容
    -A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT
    -A INPUT -m state --state NEW -m tcp -p tcp --dport 3306 -j ACCEPT
    -A INPUT -m state --state NEW -m tcp -p tcp --dport 443 -j ACCEPT
    -A INPUT -m state --state NEW -m tcp -p tcp --dport 8080 -j ACCEPT
    -A INPUT -m state --state NEW -m tcp -p tcp --dport 8090 -j ACCEPT

    点击 ESC 键退出插入模式
    点击 : 键,输入 wq 敲回车键保存退出(: 为英文状态下的)
    重启防火墙使配置生效
    systemctl restart iptables.service
    设置防火墙开机启动
    systemctl enable iptables.service
    6、客户端连接mysql
    通过 ifconfig 命令查看 ip
    通过ip新建 navicat 的连接
    7、连接过程中出现的问题和解决
    (1)出现 10060 unknow error
    大概意思是 拒绝访问这个MySQL服务,解决如下:
    进入MySQL,选择MySQL数据库,查看user=root 信息

    可以看到,root的用户只允许本地访问,现在需要改成所有或者指定IP

    改成所有都行,别忘记刷新flush privileges 就是刷新权限,最后再试试能不能远程连接
    2、报错“2013-Lost connect to MySQL server at 'waiting for initial communication packet',system error: 0 "internal error/check (No system error)"
    解决:
    进入etc/my.cnf
    [mysqld]项中,添加skip-name-resolve

  • 相关阅读:
    body标签中l的相关标签
    PostgreSQL&PostGIS完全安装
    PostgreSQL常用函数
    Linux 路由 学习笔记 之一 相关的数据结构
    OSPF学习中的问题
    对TCP重传的进一步认识
    TCP 接收窗口自动调节
    [转]struct 用法深入探索
    Memcached缓存瓶颈分析
    C++的try_catch异常
  • 原文地址:https://www.cnblogs.com/liuqiyun/p/15402894.html
Copyright © 2020-2023  润新知