通过window(Navicat)访问linux中的mysql数据库
Centos安装Mysql数据库
查看我们的操作系统上是否已经安装了mysql数据库
[root@centos~]# rpm -qa | grep mysql // 这个命令就会查看该操作系统上是否已经安装了mysql数据库
有的话,我们就通过 rpm -e 命令 或者 rpm -e --nodeps 命令来卸载掉
[root@centos~]# rpm -e mysql // 普通删除模式
[root@centos~]# rpm -e --nodeps mysql // 强力删除模式,如果使用上面命令删除时,提示有依赖的其它文件,则用该命令可以对其进行强力删除
通过yum来进行mysql的安装
[root@centos~]# yum list | grep mysql
[root@centos~]# yum install -y mysql-server mysql mysql-deve
查看刚安装好的mysql-server的版本
[root@centos~]# rpm -qi mysql-server
注意:如果我们是第一次启动mysql服务,mysql服务器首先会进行初始化的配置
[root@centos~]# service mysqld start
初始启动mysql之后再登录就会很快了
[root@centos~]# service mysqld restart
查看mysql服务是不是开机自动启动
[root@centos~]# chkconfig --list | grep mysqld
mysqld 0:关闭 1:关闭 2:关闭 3:关闭 4:关闭 5:关闭 6:关闭
通过 chkconfig mysqld on 命令来将其设置成开机启动,这样就不用每次都去手动启动了
[root@centos~]# chkconfig mysqld on
[root@centos~]# chkconfig --list | grep mysql
mysqld 0:关闭 1:关闭 2:启用 3:启用 4:启用 5:启用 6:关闭
mysql数据库安装完以后只会有一个root管理员账号,但是此时的root账号还并没有为其设置密码,在第一次启动mysql服务时,会进行数据库的一些初始化工作,在输出的一大串信息中,我们看到有这样一行信息 :
[root@centos~]# /usr/bin/mysqladmin -u root password 'new-password' // 为root账号设置密码
注意:这个root账号是mysql的root账号,非Linux的root账号)
[root@centos~]# mysqladmin -u root password 'root' // 通过该命令给root账号设置密码为 root
[root@centos ~]# mysql -u root -p
Mysql数据库的主要配置文件
1./etc/my.cnf 这是mysql的主配置文件
[root@centosetc]# cat 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
[mysqld_safe]
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
/var/lib/mysql mysql数据库的数据库文件存放位置
我们的mysql数据库的数据库文件通常是存放在了/ver/lib/mysql这个目录下
[root@centos~]# cd /var/lib/mysql/
[root@centos mysql]# ls -l
总用量 20488
-rw-rw----. 1 mysql mysql 10485760 4月 6 22:01 ibdata1
-rw-rw----. 1 mysql mysql 5242880 4月 6 22:01 ib_logfile0
-rw-rw----. 1 mysql mysql 5242880 4月 6 21:59 ib_logfile1
drwx------. 2 mysql mysql 4096 4月 6 21:59 mysql // 这两个是mysql数据库安装时默认的两个数据库文件
srwxrwxrwx. 1 mysql mysql 0 4月 6 22:01 mysql.sock
drwx------. 2 mysql mysql 4096 4月 6 21:59 test // 这两个是mysql数据库安装时默认的两个数据库文件
创建一个我们自己的数据库看一下:
mysql> create database ceshi001;
Query OK, 1 row affected (0.00 sec)
[root@centos mysql]# ls -l
总用量 20492
-rw-rw----. 1 mysql mysql 10485760 4月 6 22:01 ibdata1
-rw-rw----. 1 mysql mysql 5242880 4月 6 22:01 ib_logfile0
-rw-rw----. 1 mysql mysql 5242880 4月 6 21:59 ib_logfile1
drwx------. 2 mysql mysql 4096 4月 6 21:59 mysql
srwxrwxrwx. 1 mysql mysql 0 4月 6 22:01 mysql.sock
drwx------. 2 mysql mysql 4096 4月 6 21:59 test
drwx------. 2 mysql mysql 4096 4月 6 22:15 ceshi001 // 这个就是我们刚自己创建的centos数据库
[root@centos mysql]# cd xiaoluo/
[root@centos ceshi001]# ls
db.opt
/var/log mysql数据库的日志输出存放位置
我们的mysql数据库的一些日志输出存放位置都是在/var/log这个目录下
[root@centos ceshi001]# cd
[root@centos ~]# cd /var/log
[root@centos log]# ls
amanda cron maillog-20130331 spice-vdagent.log
anaconda.ifcfg.log cron-20130331 mcelog spooler
anaconda.log cups messages spooler-20130331
anaconda.program.log dirsrv messages-20130331 sssd
anaconda.storage.log dmesg mysqld.log tallylog
anaconda.syslog dmesg.old ntpstats tomcat6
anaconda.xlog dracut.log piranha wpa_supplicant.log
anaconda.yum.log gdm pm-powersave.log wtmp
audit httpd ppp Xorg.0.log
boot.log ibacm.log prelink Xorg.0.log.old
btmp lastlog sa Xorg.1.log
btmp-20130401 libvirt samba Xorg.2.log
cluster luci secure Xorg.9.log
ConsoleKit maillog secure-20130331 yum.log
查看网络端口号为3306的mysql数据库是否正在工作:
[root@centos mysql]#netstat -anp|more
使用Navicat连接Linux
这样就完成了在Centos上安装mysql数据库的操作,之后打开本地window->cmd,ping一下linux地址看看是否能连上
查看虚拟机IP为192.168.38.128
cmd窗口ping 192.168.38.128,出现如下界面说明是可以的
默认安装linux是只开通了22端口,不能通过3306端口让外界访问,首先要在mysql>中打开权限,在将iptables的3306端口打开
mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'MyPassword' WITH GRANT OPTION; FLUSH PRIVILEGES; // 在mysql控制台执行命令中的 ‘root’@’%’ 可以这样理解: root是用户名,%是主机名或IP地址,这里的%代表任意主机或IP地址,你也可替换成任意其它用户名或指定唯一的IP地址;’MyPassword’是给授权用户指定的登录数据库的密码;另外需要说明一点的是我这里的都是授权所有权限,可以指定部分权限。
然后直接关闭防火墙也可以.
mysql> flush privileges;
检查虚拟机mysql的端口号是否对外开通
比如我们能用xshell等远程工具连接虚拟机上的linux,是因为开放了22端口,查看mysql的端口,在mysql命令行模式下执行以下命令就可以查看,查到的结果是3306。
mysql> show variables like '%port%';
查看虚拟机的3306端口是否开放
cmd下执行telnet 192.168.38.128 3306
无法执行,别方,这是因为Windows telnet默认是关闭的
按照红框提示开启telnet
重新打开cmd窗口执行命令,结果是无法连接,这是因为虚拟机上的3306并没有对外开放,可以用22的试下效果就知道了
开通虚拟机的3306端口
查看虚拟机防火墙的状态
[root@centos~]# service iptables status
可以看到目前只有22端口对外开放
编辑防火墙文件打开3306端口
[root@centos~]# vim /etc/sysconfig/iptables
模仿22端口开放命令添加如图所示的一行即表示对外开放3306端口
重启防火墙
[root@centos~]# service iptables restart // 可以看到3306已经开放
打开Navicat,创建连接到虚拟机:
报错:1045 Access denied for user 'centos-test@'%' (using password: YES)
是因为在mysql> GRANT ALL PRIVILEGES ON *.* TO root@"%" IDENTIFIED BY "密码"; 设置的是所有linux中的root账户 ,而非centos-test账户
mysql> flush privileges;
解决办法:
GRANT ALL PRIVILEGES ON *.* TO centos-test@"%" IDENTIFIED BY "密码"; // 通过该命令允许centos-test的所有账户通过密码来访问该数据库
mysql> flush privileges;
如果想通过cmd来访问mysql
要在window下安装mysql操作台,然后远程连接虚拟机数据库访问。
端口都开启了,但还是连不上,看提示说明至少已经关联到mysql,不允许是因为权限不够
我也不用root账号了,这里重新创建一个账号并赋予所有权限,之后让权限配置生效,在虚拟机上的mysql命令行模式下执行以下命令
mysql> create user 'panda'@'%' identified by '123456';
mysql> grant all on *.* to 'panda'@'%';
mysql> flush privileges;
然后重新连接DB
附加题:
将mysql目录下bin目录中的mysql.exe放到C:\WINDOWS下,可以执行以下命令 连接:mysql -h主机地址 -u用户名 -p用户密码 (注:u与root可以不用加空格,其它也一样)
断开:exit (回车) 创建授权:grant select on 数据库.* to 用户名@登录主机 identified by \"密码\"
修改密码:mysqladmin -u用户名 -p旧密码 password 新密码
删除授权: revoke select,insert,update,delete om *.* from test2@localhost; 显示数据库:show databases;
显示数据表:show tables;
显示表结构:describe 表名; 创建库:create database 库名;
删除库:drop database 库名;
使用库:use 库名; 创建表:create table 表名 (字段设定列表);
删除表:drop table 表名;
修改表:alter table t1 rename t2
查询表:select * from 表名;
清空表:delete from 表名;
备份表: mysqlbinmysqldump -h(ip) -uroot -p(password) databasename tablename > tablename.sql
恢复表: mysqlbinmysql -h(ip) -uroot -p(password) databasename tablename < tablename.sql(操作前先把原来表删除) 增加列:ALTER TABLE t2 ADD c INT UNSIGNED NOT NULL AUTO_INCREMENT,ADD INDEX (c);
修改列:ALTER TABLE t2 MODIFY a TINYINT NOT NULL, CHANGE b c CHAR(20);
删除列:ALTER TABLE t2 DROP COLUMN c; 备份数据库:mysql\bin\mysqldump -h(ip) -uroot -p(password) databasename > database.sql
通过window(Navicat)访问linux中的mysql数据库的更多相关文章
- window下利用navicat访问Linux下的mariadb数据库
1.再Linux上成功安装mariadb数据库后,不管是在dos(敲命令mysql -h192.168.136.8 -uroot -p)下或者是navicat(创建连接)下连接mariadb数据库,会 ...
- Linux 命令之 Navicat 连接 Linux 下的Mysql数据库
2016年12月7日18:44:06 -====------------------------ GRANT ALL PRIVILEGES ON *.* TO 'itoffice'@'%' IDEN ...
- LINUX中备份mysql数据库
1.在LINUX中创建备份目录 如:/home/backup 2.把sh脚本放到备份目录下 脚本如下 https://wws.lanzous.com/i1oCxlccapa密码:dter ...
- linux中安装mysql数据库
遇到ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' ...
- linux中使用mysql数据库
在安装完数据库后,如果没有设置root的mysql密码,在命令行输入mysql即可进入数据库 show databases;(有分号):查看当前存在的数据库 create database 名字:创建 ...
- linux 中,mysql数据库备份操作
1.新建一个sh脚本(可以先建一个txt文本,然后改为sh文件). 代码如下: #!/bin/bash #设置mysql备份目录 folder=/**/** cd $folder day=`date ...
- linux 中对 mysql 数据库的基本命令
显示数据库列表 show databases; 显示库中的数据表 use mysql: // 打开库 show tables; 建库 create database 库名; 建库是设置好字符编码: c ...
- linux中备份mysql数据库的一个shell脚本
#!/bin/bash #FileName:select_into_bak.sh #Desc:Use select into outfile to backup db or tables #Creat ...
- 在 linux 中连接 mysql 数据库
命令格式 mysql -h主机地址 -u用户名 -p用户密码 登录本机 mysql mysql -u用户名 -p用户密码 实例 TD - X1数据库:/opt/lampp/bin/mysql -u r ...
随机推荐
- [SQL Database] 内外网数据库同步
Azure SQL Azure(十) SQL Azure Data Sync数据同步功能(上) SQL Azure(十一) SQL Azure Data Sync数据同步功能(下) 走近微软云:SQL ...
- 转载:futex同步机制详解
在编译2.6内核的时候,你会在编译选项中看到[*] Enable futex support这一项,上网查,有的资料会告诉你"不选这个内核不一定能正确的运行使用glibc的程序", ...
- BBS项目部署之数据库的处理
一 数据库的处理: 1.1上传bbs.sql(数据库中的数据) 1.2在mysql中创建bbs库,并导入数据库SQL脚本 在mysqld的文件夹中: mysql> create databas ...
- ansible(2)
一.ansible模块(yum.pip.service.conr.user.group) 上篇中我们已经学了ansible的几个模块,接下来再来学习几个,那么你是否知道ansible一共有多少模块呢? ...
- SpringMVC的@RequestParam
以前写controller层的时候都是默认带上 @RequestParam 的, 今天发现不加@RequestParam 也能接收到参数 下面我们来区分一下加与不加的区别 这里有两种写法 @Reque ...
- 技术架构标杆(Certicom Security Architecture)对比思考——By Me at 20140408
看到一家国外网络安全企业Certicom,官网链接:http://www.certicom.com/,可以作为很好的企业安全技术建构以及产品规划的标杆,下面我绘制了该公司的产品组合以及技术架构框图:
- Mybatis的MapperRegistry错误
1,如果mabtis的配置文件里mapper用的不是包扫描,而是: <mapper resource="com/vmpjin/mapper/OrdersMapper.xml" ...
- CTreeView 的教程
整个网上搜了一圈没有好的CTreeView 的教程,所以自己谢谢看. CTreeView 是什么? C打头的东西当然是一个类了. 有类就有继承,他的继承关系如下. 有个东西和他比较像 叫CTreeCt ...
- Way to MongoDB
1.MongoDB术语/概念:database,collection,document,field,indexSQL术语/概念:database,table,row,column,index 2.所有 ...
- YYModel源代码阅读--基础知识
这段时间因为工作需要,阅读了YYModel这个开源框架,至于它能做什么,最直白的讲述就是JSON与Model之间的相互转化. 源代码在Github,大家可以自行git clone或者download. ...