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

    1.下载mysq的repo源
      wget http://repo.mysql.com/mysql-community-release-e17-5.noarch.rpm

    2.安装mysql-community-release-e17-5.noarch.rpm包
      sudo rmp -ivh mysql-community-release-e17-5.noarch.rpm

    安装这两个包后,会获得两个MySQL的yum repo源:
      /etc/yum.repos.d/mysql-community.repo
      /etc/yum.repos.d/mysql-community-source.repo

    3.安装MySQL

      sudo yum install mysql-server mysql-client libmysqlclient-dev mysql-devel 

      MySQL-python(与上面那一行连着写)

    如果上面遇到问题:
      看下服务开没 systemctl status mysqld

    4.初始化:
      mysql_install_db

    5.设置密码
      方式一(SET PASSWORD 命令):
        mysql -u root
        SET PASSWORD FOR 'root'@'localhost'=PASSWORD('新密码');

      方式二(使用mysqladmin):
        mysqladmin -u root password '新密码'
        如果root已经设置过密码,采用以下方法:
        mysqladmin -u root password 旧密码 '新密码'

      方式三(使用update直接编辑user表):
        mysql -u root
        use mysql
        UPDATE user SET PASSWORD = PASSWORD('新密码') WHERE user = 'root';

      忘记密码:
        mysql_safe --skip-grant-tables
        mysql -u root myql
        UPDATE user SET PASSWORD = PASSWORD('新密码') WHERE user = 'root';
        FLUSH PRIVILEGES;

    设置utf-8编码:
      在 vi/etc/my.cnf:
        # 在文件中[mysqld]下面增加一行:
        character_set_server = utf8
      # 重启生效
        systemctl restart mysqld

    重启命令:

      server mysqld restart

    MySQL服务:

      1.启动命令:

        /bin/systemctl start mysqld.service

      2.关闭命令

        /bin/systemctl stop mysqld.service

      3.重启命令

        /bin/systemctl restart mysqld.service

      4.查看状态

        /bin/systemctl status mysqld.service

    查看系统配置文件:

      cat etc/my.cnf

    报错:

    mysql Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)

    错误原因:/var/lib/mysql目录中socket文件不存在。
    连接mysql服务器有两种方式:tcp连接,通过socket文件连接。通过socket文件,启动mysql服务,mysql服务会自动生成一个sock文件,生成的sock文件默认放在 --datadir=/var/lib/mysql,mysql默认从/var/lib/mysql目录读取sock文件。

    解决办法:
    1、看看/var/lib/mysql/mysql 有没有mysql.sock文件
    2、没有mysql.sock,重启mysql服务,看看有没有。
    3、没有的话,ps aux|grep mysql|grep -v 'grep' 查看mysql服务生成的sock在哪个目录,看看这个目录有没有。
    4、如果mysql服务生成在其他目录,解决办法有:
    方法一、修改mysql服务生成的目录,在my.cnf 中[mysqld] socket
    方法二、mysql从/var/lib/mysql/读取sock文件,建立一个软连接,或者copy过来
    方法三、修改mysql读取的目录,在my.cnf 中[mysql] socket
    方法四、启动指定socket,mysql -uroot -p123456 --socket='/var/lib/mysql/mysql.sock'

    注意:
    1、通过socket,只能在本地机器上连接。
    2、使用-hlocalhost就是经过socket,不经过网络,通过netstat 看不到tcp连接,可以认为mysql与mysql.sock文件交互,向里面写数据,从里面读取数据。
    3、使用-h127.0.0.1就是经过tcp,通过netstat 可以看到连接。

    启动mysql 报错:

    ERROR 2002 (HY000): Can’t connect to local MySQL server through socket ‘/var/lib/mysql/mysql.sock’ (2)

    1、先查看 /etc/rc.d/init.d/mysqld status 看看m y s q l 是否已经启动.
    另外看看是不是权限问题.

    2、确定你的mysql.sock是不是在那个位置,
    mysql -u 你的mysql用户名 -p -S /var/lib/mysql/mysql.sock

    3、试试:service mysqld start

    4、如果是权限问题,则先改变权限 #chown -R mysql:mysql /var/lib/mysql

    [root@localhost ~]# /etc/init.d/mysqld start
    启动 MySQL: [ 确定 ]
    [root@localhost ~]# mysql -uroot -p

    ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)
       原因是,/var/lib/mysql 的访问权限问题。

    shell> chown -R mysql:mysql /var/lib/mysql

    接着启动服务器

    shell> /etc/init.d/mysql start

    服务器正常启动后察看 /var/lib/mysql 自动生成mysql.sock文件。

    chown -R mysql:mysql ./及chown详解

    当我们在不通过yum(CentOS<redhat>)、apt-get(Ubuntu<debian>)来安装MySQL的时候,通常执行以下命令来改变目录的拥有者:

    [root@localhost ~]# chown -R  mysql:mysql ./
    那?这两个mysql谁是用户名谁是用户组呢?见chown详解

         chown将指定文件的拥有者改为指定的用户或组,用户可以是用户名或者用户ID;组可以是组名或者组ID;文件是以空格分开的要改变权限的文件列表,支持通配符。系统管理员经常使用chown命令,在将文件拷贝到另一个用户的名录下之后,让用户拥有使用该文件的权限。 

      1.命令格式:

        chown [选项]... [所有者][:[组]] 文件...

      2.命令功能:

        通过chown改变文件的拥有者和群组。在更改文件的所有者或所属群组时,可以使用用户名称和用户识别码设置。普通用户不能将自己的文件改变成其他的拥有者。其操作权限一般为管理员。

      3.命令参数:

      必要参数:

        -c 显示更改的部分的信息

        -f 忽略错误信息

        -h 修复符号链接

        -R 处理指定目录以及其子目录下的所有文件

        -v 显示详细的处理信息

        -deference 作用于符号链接的指向,而不是链接文件本身

      选择参数:

        --reference=<目录或文件> 把指定的目录/文件作为参考,把操作的文件/目录设置成参考文件/目录相同拥有者和群组

        --from=<当前用户:当前群组> 只有当前用户和群组跟指定的用户和群组相同时才进行改变

        --help 显示帮助信息

        --version 显示版本信息

  • 相关阅读:
    $.extend 的相关用法
    boxsizing
    用localStorage来存储数据的一些经验
    让input光标一直在最右边
    函数声明和函数表达式的区别
    css动画和jq动画的简单区分
    apply与call简单用法以及判断数组的坑
    replace的运用
    onscroll事件没有响应的原因以及vue.js中添加onscroll事件监听的方法
    解决移动端touch事件(touchstart/touchend) 的穿透问题
  • 原文地址:https://www.cnblogs.com/zsdbk/p/9855854.html
Copyright © 2011-2022 走看看