zoukankan      html  css  js  c++  java
  • linux安装mysql及navicat连接

    第一步.下载

    进入到mysql官网下载自己对应版本的mysql,下载地址:https://dev.mysql.com/downloads/mysql/5.7.html#downloads

    第二步.安装辅助工具xhell5和xftp,帮助查看linux命令和文件管理,具体不做描述;

    第三步.安装

    1.进入安装包所在目录 cd /opt/tools/mysql5.7 并解压文件  tar -zxvf mysql-5.7.25-linux-glibc2.12-x86_64.tar.gz,也可在本地解压之后通过xftp放入安装目录下。解压后的目录命名为mysql5.7;

    2.添加系统mysql组和mysql用户

       检查mysql组和用户是否存在,如无创建

       cat /etc/group | grep mysql

    以上为存在的情况,如无,执行添加命令:

    groupadd mysql
    useradd -r -g mysql mysql

    3.安装数据库

    (1)在安装目录创建文件夹data,将/opt/tools/mysql5.7的所有者及所属组改为mysql

        chmod -R 755 /opt/tools/mysql5.7

        chown -R mysql.mysql /opt/tools/mysql5.7

    (2)在/opt/mysql/mysql-5.7.25/support-files目录下创建my_default.cnf,内容为

    [mysqld]
    basedir = /opt/tools/mysql5.7
    datadir = /opt/tools/mysql5.7/data
    port = 3306
    socket = /tmp/mysql.sock
    character-set-server=utf8
     
    log-error = /opt/tools/mysql5.7/data/mysqld.log
    pid-file = /opt/tools/mysql5.7/data/mysqld.pid
    sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
    symbolic-links=0
    max_connections=400
    innodb_file_per_table=1
    #表名大小写不敏感,敏感为
    lower_case_table_names=1

    (3)拷贝到/etc/my.cnf中,如果提示是否覆盖,y

        cp support-files/my_default.cnf /etc/my.cnf

    (4)编译安装并初始化mysql,务必记住初始化输出日志末尾的密码(数据库管理员临时密码)

           进入到安装目录/opt/tools/mysql5.7,命令cd /opt/tools/mysql5.7,初始化 mysqld,命令:./bin/mysqld --initialize --user=mysql --basedir=/opt/tools/mysql5.7/ --datadir=/opt/tools/mysql5.7/data/ 

     (5)初始化完成之后,查看日志,找到临时密码。命令:/opt/tools/mysql5.7/data/mysqld.log

     记录日志最末尾位置root@localhost:后的字符串,此字符串为mysql管理员临时登录密码。

     (6)把启动脚本放到开机初始化目录,命令:

        cp support-files/mysql.server /etc/init.d/mysql  

    (7)启动mysql服务,命令

      service mysql start

    (8)登录mysql,密码为初始密码

      进入到安装目录,命令cd /opt/tools/mysql5.7,进入登录:./bin/mysql -u root -p

    (9)修改密码

         如果报如下错误:ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing this statement.则说明必须要修改密码。

         mysql5.7之前的版本命令是  update user set password=password(“新密码”) where user=”用户名”;

         5.7版本下的mysql数据库下已经没有password这个字段了,password字段改成了authentication_string

      update mysql.user set authentication_string=password('root123456') where user='root';  #修改密码成功
    >mysql -u root -p
    Enter password: ********
    Welcome to the MySQL monitor.  Commands end with ; or g.
    Your MySQL connection id is 12
    Server version: 5.7.18-log MySQL Community Server (GPL)
    
    Copyright (c) 2000, 2017, Oracle and/or its affiliates. All rights reserved.
    
    Oracle is a registered trademark of Oracle Corporation and/or its
    affiliates. Other names may be trademarks of their respective
    owners.
    
    Type 'help;' or 'h' for help. Type 'c' to clear the current input statement.
    
    mysql> use mysql;
    Database changed
    mysql> select User from user;  #此处为查询用户命令
    +-----------+
    | User      |
    +-----------+
    | *******  |
    | mysql.sys |
    | root      |
    +-----------+
    3 rows in set (0.00 sec)
    
    mysql> update user set password=password("*******") where user="*******";  #修改密码报错
    ERROR 1054 (42S22): Unknown column 'password' in 'field list'
    mysql> update mysql.user set authentication_string=password('*******') where user='*******';  #修改密码成功
    Query OK, 1 row affected, 1 warning (0.00 sec)
    Rows matched: 1  Changed: 1  Warnings: 1
    
    mysql> flush privileges;  #立即生效
    Query OK, 0 rows affected (0.00 sec)
    
    mysql> quit
    Bye
    
    n>mysql -u ******* -p #以该用户登录成功.
    Enter password: ********
    …………………………
    mysql>

    如果报错 ERROR 1819 (HY000): Your password does not satisfy the current policy requirements,则说明密码不符合要求,针对mysql5.7版本。

    (10)添加远程访问权限 

      use mysql;

      update user set host='%' where user = 'root';

      flush privileges;

     (11)重启mysql生效

      service mysql stop 

      service mysql start

      或者service mysql restart

    (12)设置mysql开机自启动

    先将/usr/local/mysql/mysql/support-files/ 文件夹下的mysql.server文件复制到 /etc/rc.d/init.d/ 目录下mysqld

    命令: cp /opt/tools/mysql5.7/support-files/mysql.server /etc/rc.d/init.d/mysql,此步骤在安装过程中已经执行过,在这里不需要执行。

    赋予可执行权限:chmod +x /etc/init.d/mysql

    添加为服务: chkconfig --add mysql

    查看服务列表:  chkconfig --list

     

    看到3、4、5状态为开或者为 on 则表示成功。如果是 关或者 off 则执行一下:chkconfig --level 345 mysqld on

    重启计算机:reboot

    再次查看服务列表或者查看3306端口号

    第四步 用navicat远程

    1、在linux查看mysql服务器IP地址

       ifconfig

    记住此IP

    navicat设置

     设置完毕

    遇到问题

    一直连不上,在网上搜索了一下,主要原因为两种

    1 虚拟机防火墙或者 3306端口未启用

    2 mysql授权问题

    问题1 

    连接时错误提示

    使用图形界面管理工具Navicat for MySQL连接Mysql数据库时提示错误:Can't connect to MySQL server (10060)

    问题原因:

    导致些问题可能有以下几个原因:

    1、网络不通;

    2、服务未启动;

    3、防火墙端口未开放;

    解决方法:

    启动服务:

      首先,我用navicat去远程链接我虚拟机中的MySQL,链接测试失败。

      然后在虚拟机中查看网络端口信息:

      #netstat -ntpl

    iptables -vnL

     查看防火墙的状态,查看3306端口,

     如果3306如下,是drop状态,或者根本无3306端口,说明3306端口设置问题

    解决办法:

    启动服务:

     service mysqld start;

    开放防火墙端口
    添加需要监听的端口
    /sbin/iptables -I INPUT -p tcp --dport 3306 -j ACCEPT

    开启3306端口监听,开启后如下图

     扩展知识

    防火墙其他相关操作

    临时关闭防火墙服务
    service iptables stop

    开启防火墙服务
    service iptables start

    开机不再启动防火墙服务
    chkconfig iptables off

     问题2

    远程链接了一下MySQL,出现了以下错误,查了一下,是因为MySQL没有允许远程登陆,所以要授权MySQL远程登陆。

      

    从任何主机上使用root用户,密码:yourpassword(你的root密码)连接到mysql服务器:
      # mysql -u root -proot 
      mysql>GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'yourpassword' WITH GRANT OPTION;

      操作完后切记执行以下命令刷新权限 
        FLUSH PRIVILEGES

       这时再通过navicat远程链接MySQL,链接测试,如下图,成功。

  • 相关阅读:
    【转】测试人员职业规划
    phantomjs处理alert、confirm弹窗
    linux搭建phantomjs+webdriver+testng+ant自动化工程
    linux搭建apache服务并修改默认路径
    linux环境vnc部署过程详解
    mongodb集群+分片部署(二)
    mongodb部署单节点(一)
    java javaScript实现遮罩层 动态加载
    感受
    JavaScript之中Array用法的一些技巧总结
  • 原文地址:https://www.cnblogs.com/zhangpeng8888/p/12920591.html
Copyright © 2011-2022 走看看