Linux安装MySQL数据库遇到的一些问题

额,其实不算是安装的时候,算是在安装到使用之间的一个状态遇到的问题。

首先安装就不多说了,我这次用的是Ubuntu系统。。。原因不多说了。

不过,本文主要是关于Mysql的问题,跟操作系统关系不大。

首先,如果忘记mysql的密码的话,可以这样登陆:

   1.命令:

    vim /etc/mysql/my.cnf

    注意,这里路径因人而异,重点是编辑my.cnf文件

   2.在[mysqld]的段中加上一句:skip-grant-tables 

   3.重启mysql。(我的操作是:/etc/init.d/mysql restart)

   4.这时候,进入MySQL就不再需要密码什么的了,

    直接在命令行输入mysql就能进入数据库了。

   5.然后是修改新密码

    

use mysql;
UPDATE user SET Password=PASSWORD('123456') WHERE user='root';

  然后退出mysql,删掉刚刚在my.cnf上插入的那句话,重启mysql。搞定!

  这里有一点要注意,上面的update方法里面,

  password=password('123456')的password()方法是不能少的,

  因为实际登陆的时候,密码也是会被数据库用这个方法加密,然后验证。

  其实还有另外一个修改密码的方法,

  命令行输入 /usr/bin/mysql_secure_installation,然后会出现以下输出

    Change the root password? [Y/n] Y

    New password: 

    Re-enter new password: 

    Password updated successfully!

    Reloading privilege tables..

     ... Success!

    Remove anonymous users? [Y/n] Y
     ... Success!

    Disallow root login remotely? [Y/n] n
     ... skipping.

    Remove test database and access to it? [Y/n] n
     ... skipping.

    Reload privilege tables now? [Y/n] Y
     ... Success!

  以上方法可以作为参考

 

 

再一个,关于mysql用Navicat远程登陆的问题:

  首先,mysql默认是不允许远程登陆的,再一个,Linux也没有打开3306端口。

  那么解决方案就明了了——打开3306端口号,数据库设置允许远程登陆。

  先说打开端口号吧Ubuntu里面默认安装的iptables是非持久化的,也就是,

  重启系统,iptables就会重置。

  具体操作,使用命令:

  1.apt-get iptables-persistent

  2.iptables -I INPUT -p tcp --dport 3306 -j ACCEPT

  3.service iptables-persistent save

  经过以上三步,应该就打开了3306端口。

  然后是数据库设置允许远程登陆

  要注意的是,远程登陆的未必要root用户,所以,可以设置个专门的账号

  以下都是在mysql里面执行的。

  mysql命令:

  use mysql;

  CREATE USER 'username'@'host' IDENTIFIED BY 'password';

    注意,上面的host如果写作%,那么所有IP都能访问,即外部远程访问。

  GRANT ALL ON *.* TO 'username'@'host'; 

    上面这句是授权,也就是给username这个用户授权。(授权为ALL)

  经过这两步,就大概可以用Navicat登陆数据库了。

posted @ 2017-12-27 17:31  浣溪山  阅读(142)  评论(0编辑  收藏  举报