zoukankan      html  css  js  c++  java
  • 腾讯云CentOS6.5下安装mysql,并配置好远程访问等权限,途中遇到的问题

    1.使用yum命令安装mysql

    [root@bogon ~]#  yum -y install mysql-server  

    2.设置开机启动

    [root@bogon ~]#  chkconfig mysqld on 

    3.启动MySQL服务

    [root@bogon ~]#  service mysqld start  

    4.设置MySQL的root用户设置密码

    [root@bogon ~]#  mysql -u root  
    mysql> select user,host,password from mysql.user;  
    +------+-----------+----------+  
    | user | host      | password |  
    +------+-----------+----------+  
    | root | localhost |          |  
    | root | bogon     |          |  
    | root | 127.0.0.1 |          |  
    |      | localhost |          |  
    |      | bogon     |          |  
    +------+-----------+----------+  
    5 rows in set (0.01 sec)  

    查询用户的密码,都为空,用下面的命令设置root的密码为root

    mysql> set password for root@localhost=password('root');  
    mysql> exit  

    6.创建mysql新用户test_user

    mysql> create user 'test_user'@'%' identified by 'test_user';  
    Query OK, 0 rows affected (0.00 sec) 

    7.给新用户test_user授权,让他可以从外部登陆和本地登陆
    注意:@左边是用户名,右边是域名、IP和%,表示可以访问mysql的域名和IP,%表示外部任何地址都能访问。

    mysql> grant all privileges on *.* to 'test_user'@'localhost' identified by 'test_user';  
    Query OK, 0 rows affected (0.00 sec)  
    mysql> grant all privileges on *.* to 'test_user'@'%' identified by 'test_user';  
    Query OK, 0 rows affected (0.00 sec)  
    mysql> select user,host,password from mysql.user;  
    +----------+-----------+-------------------------------------------+  
    | user     | host      | password                                  |  
    +----------+-----------+-------------------------------------------+  
    | root     | localhost | *81F5E21E35407D884A6CD4A731AEBFB6AF209E1B |  
    | root     | bogon     |                                           |  
    | root     | 127.0.0.1 |                                           |  
    |          | localhost |                                           |  
    |          | bogon     |                                           |  
    | test_user | %         | *3046CF87132BBD4FDDF06F321C6859074843B7D3 |  
    | test_user | localhost | *3046CF87132BBD4FDDF06F321C6859074843B7D3 |  
    +----------+-----------+-------------------------------------------+  
    7 rows in set (0.00 sec)  
    mysql> flush privileges;  
    Query OK, 0 rows affected (0.01 sec)  

    8.查看mysql5.1的默认存储引擎
    从下面的执行结果可以看出,mysql的默认引擎是MyISAM,这个引擎是不支持事务的。

    mysql> show engines;  
    +------------+---------+------------------------------------------------------------+--------------+------+------------+  
    | Engine     | Support | Comment                                                    | Transactions | XA   | Savepoints |  
    +------------+---------+------------------------------------------------------------+--------------+------+------------+  
    | MRG_MYISAM | YES     | Collection of identical MyISAM tables                      | NO           | NO   | NO         |  
    | CSV        | YES     | CSV storage engine                                         | NO           | NO   | NO         |  
    | MyISAM     | DEFAULT | Default engine as of MySQL 3.23 with great performance     | NO           | NO   | NO         |  
    | InnoDB     | YES     | Supports transactions, row-level locking, and foreign keys | YES          | YES  | YES        |  
    | MEMORY     | YES     | Hash based, stored in memory, useful for temporary tables  | NO           | NO   | NO         |  
    +------------+---------+------------------------------------------------------------+--------------+------+------------+  
    5 rows in set (0.00 sec)  

    也可以以下面的方式查看

    mysql> show variables like 'storage_engine';  
    +----------------+--------+  
    | Variable_name  | Value  |  
    +----------------+--------+  
    | storage_engine | MyISAM |  
    +----------------+--------+  
    1 row in set (0.00 sec)  

    9.修改mysql的默认引擎为InnoDB
    9.1 停止mysql

    mysql> exit;  
    [root@bogon ~]# service mysqld stop  

    9.2 修改/etc/my.cnf
    [mysqld] 后加入

    default-storage-engine=InnoDB  

    加入后my.cnf的内容为:

    [root@bogon etc]# more my.cnf  
    [mysqld]  
    datadir=/var/lib/mysql  
    socket=/var/lib/mysql/mysql.sock  
    user=mysql  
    # Disabling symbolic-links is recommended to prevent assorted security risks  
    symbolic-links=0  
      
    default-storage-engine=InnoDB  
      
    [mysqld_safe]  
    log-error=/var/log/mysqld.log  
    pid-file=/var/run/mysqld/mysqld.pid  

    9.3 启动mysql

    [root@bogon etc]# service mysqld start  
    Starting mysqld:  [  OK  ] 

    9.4 查看mysql默认存储引擎

    [root@bogon etc]# mysql -u root -p  
    Enter password:   
    Welcome to the MySQL monitor.  Commands end with ; or \g.  
    Your MySQL connection id is 2  
    Server version: 5.1.73 Source distribution  
      
    Copyright (c) 2000, 2013, 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> show variables like 'storage_engine';  
    +----------------+--------+  
    | Variable_name  | Value  |  
    +----------------+--------+  
    | storage_engine | InnoDB |  
    +----------------+--------+  
    1 row in set (0.00 sec)  

    10.CentOS6.5开放mysql端口3306
    CentOS6.5默认是不开放端口的,如果要让外部的系统访问CentOS6.5上的mysql,必须开放mysql的端口3306
    10.1 修改/etc/sysconfig/iptables
    添加下面一行

    -A INPUT -m state --state NEW -m tcp -p tcp --dport 3306 -j ACCEPT 

    修改后iptables中的内容是

    [root@bogon etc]# more /etc/sysconfig/iptables  
    # Firewall configuration written by system-config-firewall  
    # Manual customization of this file is not recommended.  
    *filter  
    :INPUT ACCEPT [0:0]  
    :FORWARD ACCEPT [0:0]  
    :OUTPUT ACCEPT [0:0]  
    -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT  
    -A INPUT -p icmp -j ACCEPT  
    -A INPUT -i lo -j ACCEPT  
    -A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT  
    #添加配置项  
    -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 11211 -j ACCEPT  
    -A INPUT -m state --state NEW -m tcp -p tcp --dport 3306 -j ACCEPT  
    -A INPUT -j REJECT --reject-with icmp-host-prohibited  
    -A FORWARD -j REJECT --reject-with icmp-host-prohibited  
      
    COMMIT  

    11.重启防火墙

    [root@bogon etc]# service iptables restart 

    这样就可以从外部访问mysql了。

    至此,mysql在CentOS6.5上的安装过程、用户创建、外部访问的步骤全部完成。

    —————————分割线—————————————

    上面都是从别人发表的文章中截取的~~~作者要是看到了莫怪,我只是想收藏,怕源文被删就看不到了,谢谢你们这些摘树的前人。

    其实这样在云主机上设置mysql并访问是OK的。适用于一切的centos6.5,亦或者其他linux系统。万变不离其宗,系统的改变,无非是命令行语言的改变,其宗旨是不会变的。

    LZ第一次用云主机,想试试在本地远程访问一下,结果发现,咦,连接出错了~~~,后来试了很多方法,还是没有能成功。

    刚开始,用Navicat连接远程数据库,出现如下错误:应该就是远程不允许访问了。

    远程拒绝访问的情况可能有两种:

    一、mysql设置中,不允许远程访问.也即你使用的mysql登陆账号没有远程访问的权限。比如root账号,在我们之前看到的use权限列表中,root就没有远程访问的权限。现在来设置root的远程访问权限。

     
     
    方法一:实现远程连接(授权法)
    mysql> use mysql;
    Database changed
    mysql> grant all privileges  on *.* to root@'%' identified by "root";
    mysql> select host,user,password from user;
    +--------------+------+-------------------------------------------+
    | host         | user | password                                  |
    +--------------+------+-------------------------------------------+
    | localhost    | root | *A731AEBFB621E354CD41BAF207D884A609E81F5E |
    | 192.168.1.1 | root | *A731AEBFB621E354CD41BAF207D884A609E81F5E |
    | %            | root | *A731AEBFB621E354CD41BAF207D884A609E81F5E |
    +--------------+------+-------------------------------------------+
    3 rows in set (0.00 sec)
    这样机器就可以以用户名root密码root远程访问该机器上的MySql.
     
    方法二:实现远程连接(改表法)
    将host字段的值改为%就表示在任何客户端机器上能以root用户登录到mysql服务器,建议在开发时设为%。 
    mysql> use mysql;
    Database changed
    mysql> update user set host = '%' where user = 'root';
    这时,root将权限改为ALL PRIVILEGES;
    这样在远端就可以通过root用户访问Mysql.
     
     
    二、确定服务器上的防火墙没有阻止 3306 端口。也即服务器上面有没有开放mysql的端口~(我的就是这个问题)
      看到上面的第10条中,在端口管理iptables中添加3306端口的开放配置,这样算是硬件的配置。然后看看你的云主机设置里面有没有开放对应的端口,或者说是不是开放了所有端口~我的云主机如下图:
    腾讯云主机中,貌似是没有开放所有端口的,所以需要我们自己在这里稍微设置一下,勾选“默认安全组放通全部端口”选项,“确定”。基本上,我们能做的都做了,要不然就是配置文件出错了,再返回去看看。设置好了以后,我去试了一下连接,结果成功了~
    哈哈,好高兴~以后遇到这些问题就知道在哪些地方找问题了~~~
  • 相关阅读:
    DirectX:在graph自己主动连线中增加自己定义filter(graph中遍历filter)
    C3P0数据库连接池使用
    POJ
    【jQuery】复选框的全选、反选,推断哪些复选框被选中
    BestCoder Round #75 King's Cake 模拟&&优化 || gcd
    《Javascript_Dom 编程艺术》(第2版)读书笔记
    POJ 2947-Widget Factory(高斯消元解同余方程式)
    MFC 小知识总结四
    迭代器和iter()函数
    hdu1595find the longest of the shortest 最短路
  • 原文地址:https://www.cnblogs.com/yangyabo/p/5301364.html
Copyright © 2011-2022 走看看