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

      Linux系统版本:CentOS 7  (MySQL的安装版本是与Linux版本有关的,请大家下载MySQL时注意)

    1. 安装MySQL步骤

      1.1 检查MySQL是否已经安装  yum list installed | grep mysql

        如果已经有了就卸载掉, yum -y remove +数据库名称

      1.2 MySQL依赖libaio,所以先要安装libaio

        yum search libaio # 检索相关信息

        yum install libaio # 安装依赖包

      1.3 下载MySQL Yum Repository

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

      1.4 添加 MySQL Yum Repository

        添加 MySQL Yum Repository 到你的系统 repository 列表中,执行 yum localinstall mysql-community-release-el7-5.noarch.rpm

        在执行过程中需要确认,输入y,成功显示

        如果提示-bash: wget: 未找到命令,请先执行 yum install wget 安装 wget

      1.5 验证下是否添加成功

        yum repolist enabled | grep "mysql.*-community.*"

        如果需要查看MySQL版本,执行  yum repolist all | grep mysql 可以看到 5.5, 5.7 版本是默认禁用的,因为现在最新的稳定版是 5.6

      1.6 通过 Yum 来安装 MySQL

        yum install mysql-community-server

        Yum 会自动处理 MySQL 与其他组件的依赖关系,遇到 y 提示,输入 y 继续,执行完成会提示“完毕!”。此时MySQL 安装完成,它包含了 mysql-community-server、mysql-community-client、mysql-community-common、mysql-community-libs 四个包。

      1.7 查看安装结果

        执行:whereis mysql

        可以看到mysql的安装目录是:mysql: /usr/bin/mysql /usr/lib64/mysql /usr/share/mysql /usr/share/man/man1/mysql.1.gz

    2. 启动和关闭MySQL

      启动 MySQL Server :systemctl start mysqld (第一次启动会要求设置密码)

      查看 MySQL Server 状态:systemctl status mysqld

      关闭 MySQL Server:systemctl stop mysqld

      重启MySQL Server:service mysqld restart

      测试是否安装成功:mysql

    3. 防火墙设置(如果服务器已经关闭了防火墙,可跳过此步骤)

      远程访问 MySQL, 需开放默认端口号 3306.

      firewall-cmd --permanent --zone=public --add-port=3306/tcp

      firewall-cmd --permanent --zone=public --add-port=3306/udp

      firewall-cmd --reload

    4. MySQL安全设置

      4.1 服务器启动后,可以执行 mysql_secure_installation;

      4.2 修改默认root账号密码

        mysql -uroot -proot   (-u后面是用户名,默认是root,-p后面是上面配置的密码)

        show databases;   (显示数据库名命令)

        use mysql;    (使用默认的mysql库)

        update user set password="root" where user="root";

    5. 错误解决方案

      跳过登录过程,还可以直接修改my.cnf文件,在[mysqld]后面加一条, skip-grant-tables

      重启mysql就好了,记得修改配置之后,再把这行代码去掉。

      5.1 权限不够,或密码错误:ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)

        我们要做的是命令行免密登录,修改root默认密码

        (1)先停止MySQL服务器  systemctl stop mysqld

        (2)使用safe模式,进行重启,因为是yum模式安装的,不需要找安装目录,直接运行命令就可以:./mysqld_safe --skip-grant-tables

        (3)另外起一个服务器连接终端,使用root账户,无密码登录,修改root用户密码

          mysql -u root

          use mysql

          update user set password=PASSWORD("你的密码") where User = 'root';

          flush privileges;  // 更新命令

        (4)启动MySQL使用新密码登录

          mysql -uroot -p  然后输入刚才重置的密码

      5.2 使用MySQL工具时连接报错:Host XXX is not allowed to connect to this MySQL server

        mysql -u root

        use mysql;

        select host from user where user='root';   (查询结果会有:127.0.0.1   localhost 等,需要把这些改成%通配符)

        update user set host = '%' where user ='root';  并删除其他的,只保留1条

        5.3  匿名账户问题: ERROR 1044 (42000): Access denied for user ''@'localhost' to database 'mysql'

        当你用root账号登录时,使用命令时会有上面的提示,并且使用show databases命令,发现没有mysql库了。
        因为mysql数据库的user表里,存在用户名为空的账户即匿名账户,导致登录的时候是虽然用的是root,但实际是匿名登录的,通过错误提示里的''@'localhost'可以看出来。

       (1)先停止MySQL服务器  systemctl stop mysqld

       (2)使用safe模式,进行重启,因为是yum模式安装的,不需要找安装目录,直接运行命令就可以:./mysqld_safe --skip-grant-tables

       (3)另外起一个服务器连接终端,使用root账户,无密码登录,修改root用户密码

          mysql -u root

          use mysql

          delete from user where USER='';

          flush privileges;  // 更新命令

        (4)启动MySQL使用新密码登录

          mysql -uroot -p  然后输入刚才重置的密码

  • 相关阅读:
    svn常用命令
    mysql5.6 sql_mode设置
    centos6.5 mysql5.6主从复制
    linux 挂载windows共享文件夹
    hadoop+hive+hbase+zookeeper安装
    Linux踢出登陆用户的正确姿势
    个人博客项目部署到腾讯云记录(私人记录)
    Python中的单例模式的几种实现方式和优化以及pyc文件解释(转)
    关于window.location.hash的理解及其应用(转)
    Django model反向关联名称的方法(转)
  • 原文地址:https://www.cnblogs.com/huanshilang/p/11332605.html
Copyright © 2011-2022 走看看