Linux下MySQL的安装与远程登录设置

来源:互联网 发布:linux怎么导入文件 编辑:程序博客网 时间:2024/05/21 11:58

2014年8月15日16:06:33

一、Linux下MySQL的安装与配置

1、linux下使用yum安装mysql

查看有没有安装过:

          yum list installed mysql*

          rpm -qa | grep mysql*

查看有没有安装包:

          yum list mysql*

安装mysql客户端:

          yum install mysql

安装mysql 服务器端:

          yum install mysql-server

          yum install mysql-devel

注:客户端只是提供了mysql、mysqldump之类的访问mysql数据库的工具,server版一般提供客户端版的所有工具,也是mysql数据库的核心程序,保存数据(来自百度知道)

2、查看Mysql开机启动服务(即在哪个运行级别中开机启动)

       chkconfig --list | grep mysql*

设置mysql服务开机启动

       chkconfig --add mysqld

3、查看服务或进程是否已经开启

       ps -ef | grep mysqld 看看是否有 mysqld_safe 和 mysqld 进程

如果已添加到系统服务中,可以service mysqld status

停止服务

       service mysqld stop

重启服务

       service mysqld restart

init0-6为运行级别

#0 - 停机(千万不要把initdefault设置为0 )

#1 - 单用户模式

#2 - 多用户,但是没有NFS

#3 - 完全多用户模式

#4 - 没有用到

#5 - X11

#6 - 重新启动(千万不要把initdefault设置为6 )

#对各个运行级的详细解释:

0为停机,机器关闭。

1为单用户模式,就像Win9x下的安全模式类似。

2为多用户模式,但是没有NFS支持。

3为完整的多用户模式,是标准的运行级。

4一般不用,在一些特殊情况下可以用它来做一些事情。例如在笔记本电脑的电池用尽时,可以切换到这个模式来做一些设置。

5就是X11,进到X Window系统了。

6为重启,运行init 6机器就会重启。

修改级别

vi/etc/inittab

可把id:3:initdefault:中的3改为相应的级别

init是所有进程的源头﹐它的进程号始终为1。你可以这么理解:init 0 是源文件,而poweroff等关机命令只是一个快捷方式。这样你能明白了吗。其他init的运行级别也是可以这么理解。 而inittab是启动时加载的文件(可以把它看作windows下的开机启动文件夹),在linux下为了脚本的简洁当然要将各种运行级别统一写入一个文件里了。

例如当你在图形界面中点击了关机或重启其实就是在后台调用了

init0 或 init 6(来自百度知道)

查看当前用户的运行级别

       runlevel

tty0-7为终端代号

查看当前用户登录的终端

tty或 who am i 或 who

4、首次登录MySQL

       登录MySQL的命令是mysql, mysql 的使用语法如下:

mysql[-u username] [-h host] [-p[password]] [dbname]

username与 password 分别是 MySQL 的用户名与密码,mysql的初始管理帐号是root,没有密码,

注意:这个root用户不是Linux的系统用户。MySQL默认用户是root,由于 初始没有密码,第一次进时只需键入mysql即可。

[root@test1local]# mysql

ERROR1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)

给它建立一个密码试试

[root@test1local]#mysqladmin -u root password "root"

mysqladmin:connect to server at 'localhost' failed

error:'Access denied for user 'root'@'localhost' (using password: NO)'

设置一下mysql的配置文件

[root@localhost~]# vim /etc/my.cnf

[mysqld]

skip-grant-table //这句表达的意思呢是“跳过授权表,即无密码直接进入啦”

保存退出,重启服务

[root@localhost~]# service mysqld restart

再次登录

[root@localhost~]# mysql

Welcometo the MySQL monitor.  Commands end with; or \g.

YourMySQL connection id is 2

Serverversion: 5.1.73 Source distribution

Copyright(c) 2000, 2013, Oracle and/or its affiliates. All rights reserved.

Oracleis 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>

 

查看mysql的user表

mysql> use mysql;

       mysql> select user,host,password fromuser;

我们发现有空用户,删除掉这些空用户。

删除空用户

       mysql> delete from user where user='';

退出mysql

       Quit

然后还原mysql的配置文件

[root@localhost~]# vim /etc/my.cnf

[mysqld]

#skip-grant-table   //注释掉这句或者直接删掉(让所有用户都有权限登录是非常危险的。。)

保存退出,重启服务

[root@localhost~]# service mysqld restart

再次登录

[root@localhost~]# mysql

ERROR1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)

发现还是不能登录成功。。再重新配置一下MySQL文件,让用户跳过权限直接登录。

再次查看一下mysql用户表

mysql>use mysql;

我们发现第一行的root用户是有密码的,怪不得它总拒绝我们登录,原来我们输入的密码不对,说明这不是我们第一次登录mysql。此时我们已经忘记了root的登录密码,怎么办。。修改一下root的登录密码:

退出MySQL,再次还原mysql的配置文件。注释掉这句skip-grant-table,保存退出,重启MySQL服务,然后用新密码登录试试。。

二、Navicat远程登录MySQL

1、创建远程登录用户并授权

查看MySQL用户权限

查看当前用户权限

Show grants;

为用户root授予远程登录的权限,并用flush privileges使此权限立即生效。。

格式:grant 权限 on 数据库名.表名 to 用户@登录主机 identified by "用户密码";

 

2、查看MySQL服务是否已启动

service mysqld status

查看mysql 服务端口

netstat -anp | grep mysqld

开放MySQL端口

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

记得要保存才能生效

service iptables save 

重启防火墙使设置生效

service iptables restart

查看网络状态

ifconfig -a

显示的网卡只有eth1

ifup eth1
/sbin/ifup: configuration for eth1 not found.

查看一下ifcfg-*

发现只有ifcfg-eth0却没有ifcfg-eth1

只显示eth0的原因是虚拟机中重设了网卡mac地址,70-persistent-net.rules中仍然保留了老网卡的内容,新网卡则被识别为eth1。
将表示老网卡的行注释掉,然后将表示新网卡的行中eth1改成eth0,重启即可。

现在联网试试

ifup eth0

device eth0 has different mac address than expected,ignoring.

哎。还没成功

原因是配置文件里的MAC地址和真实的MAC不一样。含有MAC信息的配置文件是/etc/sysconfig/network-scripts/ifcfg-eth0。查看本机实际MAC的命令是 ifconfig eth0

然后把配置文件/etc/sysconfig/network-scripts/ifcfg-eth0中的MAC改成本机实际的MAC即可。。

哎。终于成功了。。好累。。

0 0
原创粉丝点击