zoukankan      html  css  js  c++  java
  • CentOS安装MySQL

    查看是否已经安装mysql和mariaDB(新版mysql会带有mariaDB), 此笔记只针对mysql

    • rpm -qa|grep mysql 查看有没有安装mysql
    • rpm -qa|grep maria 查看有没有安装mariaDB

    最好只选择一种,两种混装可能会有问题。

    一、安装mariaDB

    1. yum -y install mysql
    2. yum -y install mariadb-server
    3. mysql_secure_installation 设置 root密码等相关
    4. 第二步没安装的的话,会报错的,即ERROR 2002 (HY000): Can’t connect to local MySQL server through socket ‘/var/lib/mysql/mysql.sock’ 

    二、安装mysql

      1. 如果使用mysql, 则需要先把mariaDB删除

        $ yum -qa|grep mariaDB      // 找到所有相关mariaDB的包

        $ yum remove -y mariaDB-*  // 删除以上的包

        $ wget http://dev.mysql.com/get/mysql-community-release-el7-5.noarch.rpm   // 获取源

        $ sudo rpm -ivh mysql-community-release-el7-5.noarch.rpm              // 添加源

        $ yum install -y mysql 

        $ yum install -y mysql-server     // 安装相关服务, 

        $ systemctl start mysql      // 启动mysql服务

        $ systemctl enable mysql       // 开机自启动

        $ mysql -u root -p         // 初始化账号是root

      之前遇到个坑,老版本默认密码为空,但新版默认密码是root, 所以如果在Enter password中没有输入root或者输错则会报一下错误。

      

      如有 ERROR 2002 (HY000): Can’t connect to local MySQL server through socket ‘/var/lib/mysql/mysql.sock’ 错误, 则重新启动mysql或者添加执行权限

       $  systemctl restart mysql

       $ systemctl restart mysql.service

       $ chmod 777  /etc/mysql

      登录成功后如下 , 最后可修改默认账号和密码

      

    三、修改密码

       此时,服务器本地登录可以不用密码, 但选择数据库时会报错:ERROR 1044 (42000): Access denied for user ''@'localhost' to database 'mysql'。这是由于在mysql数据库中存在匿名账户,所以登录时无论是-u root还是不使用root账号,都以匿名账号身份登录,而密码是随机的。解决步骤,先删除匿名账号,再给root账号设置密码。

        1 ) 关闭登录权限验证

        打开配置文件

    1 [root@lunix ~]# vim /etc/my.cnf

        

        在最后一行添加 skip-grant-tables(如原来就有,则将前面的#去掉), 保存并退出,重启mysql服务

    1 [root@lunix ~]# systemctl restart mysql.service

    再次登录mysql, 无需账号密码。

    1 [root@lunix ~]# mysql

    登录成功, 可查看本地数据库 show databases;

    切换到mysql数据库, use mysql;

    删除匿名账号 , (这里是因为已经删除过,所以显示0 rows, 新用户应该是显示 2 rows) , 当然,也可以不删除匿名账号, 但这样别人就可以随便登录本地mysql。

    1 mysql> delete from user where user=''; 

     设置新密码 

    1 mysql> UPDATE user SET password=password('您的新密码') where user='root'

    刷新权限(必须,否则重启服务后之前设置的密码就无效), 最后退出即可

    1 mysql> flush privileges; 
    2 mysql> quit;

     将之前/etc/my.cnf添加的 skip-grant-tables删除或者注释 (即恢复密码登录验证)

    重启mysql服务 

     [root@lunix ~]# systemctl restart mysql.service // 或者 service restart mysql

    再次登录mysql, 此时命令行直接输入 mysql是无法登录的,表示密码错误。

    1 [root@lunix ~]# mysql
    2 ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)

    正确登录, 在提示的 Enter password后输入之前设置的密码即可。

    1 [root@lunix ~]# mysql -u root -p

    到此,可以正常操作数据库了。

    最后,对外开放3306端口, 客户端就可以登录服务器的mysql了

    1 // 开放3306端口
    2 [root@lunix ~]# /sbin/iptables -I(A) INPUT -p tcp --dport 3306 -j ACCEPT
    3 
    4 // 重启网络服务
    5 [root@lunix ~]# service network restart

    客户端Navicat连接, 对应输入ip和密码即可, 连接名自定义

    连接成功!

  • 相关阅读:
    jquery+NHibernate3.3.3+MVC的分页效果
    An exception occurred during configuration of persistence layer.
    StringHelpers
    发送带有认证信息的HTTP请求并取回响应
    script的defer和async
    location.origin兼容
    写法导致的兼容性问题
    正则表达式应用收集
    列表数字对齐布局
    轮盘赌算法
  • 原文地址:https://www.cnblogs.com/hughes5135/p/10261812.html
Copyright © 2011-2022 走看看