python-django-linux上mysql的安装和配置_20191124
又有了阻塞了,怎么在Linux创建数据库,mysql,
我把数据库安装在Linux上,
- 1,sudo apt-get install mysql-server
- 2,ps -aux | grep 'mysql',如果出现了,就是安装好了,
- usr/sbin/mysqld,显示这个,后面有一个d,就是开机默认启动的意思,
- 3,sudo service mysql stop,这是关闭服务,
- 4,sudo service mysql restart,这是重启服务,
配置:
- 打开这个文件,cd /etc/mysql/mysql.conf.d/ vim mysqld.cnf
- 这个配置文件不要随便动,
安装客户端,
- 安装命令客户端,sudo apt-get install mysql-client
这个命令客户端怎么用:
- 先登录,mysql -uroot -p,输入密码
- 然后你就可以输入命令了,和cmd窗口输入sql一样的,
图形的客户端
- 我要使用我Windows上面的,连接虚拟机上的,
- 需要修改Linux上面mysql的配置,sudo vi /etc/mysql/mysql.conf.d/mysqld.cnf
- 把#bind-address=127.0.0.1,注释掉
- 重启mysql,
not allowed to connect to this MySQL server
解决方案:
- 1,mysql -u root -p
- 2,依次执行如下命令:
- use mysql;
- select host from user where user='root';
- 3,update user set host = '%' where user ='root'; Host设置了“%”后便可以允许远程访问。
- 4,flush privileges;,使得配置立刻生效,
创建数据库
- show databases;
- CREATE DATABASE dailyfresh;
#####################################################################################################
windows下用navicat远程链接虚拟机Linux下MySQL数据库
首先,我用navicat去远程链接我虚拟机中的MySQL,链接测试失败。
第一步:
- 检查远程的虚拟机是否可以ping通过
- 查看虚拟机IP,ifconfig,为192.168.38.128
- cmd窗口ping 192.168.38.128,出现如下界面说明是可以的
第二步:
- 检查虚拟机mysql的端口号是否对外开通
- 比如我们能用xshell等远程工具连接虚拟机上的linux,是因为开放了22端口
- 查看mysql的端口,mysql -uroot -p ,在mysql命令行模式下执行以下命令就可以查看,查到的结果是3306
- show variables like '%port%';
第三步:
- 查看虚拟机的3306端口是否开放
- cmd下执行telnet 192.168.38.128 3306
- 无法执行,这是因为Windows telnet默认是关闭的
- 在Windows控制面板中,打开Windows的功能,打开Telnet服务端和客户端,
- 重新打开cmd窗口执行命令,结果是无法连接,这是因为虚拟机上的3306并没有对外开放,可以用22的试下效果就知道了
第四步:
- 到了这一步就很诡异了,
- Windows 中Telnet3306端口就是不通,但是使用ssh连接Ubuntu就是正常的,
- 所以只有可能是两个原因,
- 1是mysql的设置没有开放mysql的3306端口,
- 2是防火墙没有设置mysql 的3306端口
- 我尝试了在Ubuntu系统连接mysql是正常的,所以只有可能是第二个情况,防火墙的问题了,
- 然后在虚拟机中查看网络端口信息: #netstat -ntpl
- 我查看了,查看了防火墙的状态,#iptables -vnL,,,、
- 要清除防火墙中链中的规则 #iptables -F,我做了这一步之后,再去连接远程mysql就可以了,!!!!!
- 该死,气死我了,!!!!!!!!
技术改变命运