centos mysql客户端(centos 安装ssh)
centos7怎么安装mysql
1、Centos 7默认不支持mysql(都是因为钱),所以centos 7默认支持的是mariadb
何为mariadb?
MariaDB数据库管理系统是MySQL的一个分支,主要由开源社区在维护,采用GPL授权许可 MariaDB的目的是完全兼容MySQL,包括API和命令行,使之能轻松成为MySQL的代替品。在存储引擎方面,使用XtraDB来代替MySQL的InnoDB。 MariaDB由MySQL的创始人Michael Widenius主导开发,他早前曾以10亿美元的价格,将自己创建的公司MySQL AB卖给了SUN,此后,随着SUN被甲骨文收购,MySQL的所有权也落入Oracle的手中。MariaDB名称来自Michael Widenius的女儿Maria的名字。
说到这,我个人强烈推荐大家开始学习MariaDB,当然由于我们一些项目还是要用mysql的,所以不能放弃。真不难学。
接下来我讲一下centos 7对mysql的安装过程
1、如果一定要在centos 7上安装mysql,需要卸载MariaDB,否则会冲突。
2、执行这个命令:rpm-qa| grep mariadb
3、这时会出现一些列表,都是mariadb的包,接下来我们要干掉
4、执行如下命令rpm-e–nodeps mariadb-libs-XXXXX.x86_64(注意我这里的xxxx,要根据第三步出现的列表,挨个干)
5、干完后,就可以安装mysql了。
6、去度娘搜索mysql的rpm包,一大把。我用的是5.6.22.(找不到的,问我要)
ww
这里需要安装至少2个,1个是mysql-server-xxxx.rpm(这个就是服务端),还有一个是mysql-client-xxxx.rpm(这个是客户端,不想装?不装的话你没法初始化root密码,求懂)
7、执行 rpm-ivh“上面两个文件名”
8、这样就装好了。
9、然后执行:service mysql start(如果OK,说明装好了)
10、再然后执行:service mysql stop(不要问为什么,因为默认root没有密码,你进不去,所以接下来我们要绕过密码登录)
11、执行这个命令:mysqld_safe–user=mysql–skip-grant-tables–skip-networking& mysql-u root mysql(也就是,老子不用密码直接登录,这时mysql服务必须关闭状态)
12、然后执行这个命令:UPDATE user SET Password=PASSWORD(‘XXXXX’) where USER=’root’;这里就是对root账号初始化密码,xxx自行改,不要忘了。忘掉的话就要用第11步初始化(谁说没有密码就不能进mysql?)
13、然后执行 flush privileges;(注意不要忘记最后的分号,必须有,不要问为什么)
14、然后输入quit;退出mysql客户端。
15、重新启动mysql,命令:service mysql start
16、然后用root账号登录命令:mysql-u root-p(接下来会提示你输入密码,此时屏幕不可见,不要以为死机了)
17、这时随便执行一个sql,譬如 show databases;
18、这时会报错,大约是You must SET PASSWORD before executing this statement.其实就是我们常见的:第一次登录需要改密码,
19、那我们就改一改吧,反正不会怀孕
20、执行 SET PASSWORD= PASSWORD(‘xxxx’);注意分号,也可以把密码跟上面搞得一样。
21、然后再去执行一些sql,看看对不对。对的话quit;
22、最后,我们最好吧mysql重启一下. service mysql restart
23、然后配置远程可以连接(注意刚才我们都是在本机操作的哦~~~~)
24、依然mysql-u root-p输入密码后登入
25、执行:GRANT ALL PRIVILEGES ON*.* TO‘root’@’%’ IDENTIFIED BY‘这里填你的密码’ WITH GRANT OPTION;(这里root@后面的百分号代表全宇宙都可以连接你的mysql,只要知道密码),如果是仅仅允许某个IP连接,那么把这个百分号换成某个ip即可
26、FLUSH PRIVILEGES;并且退出
27、保险起见,再重启mysql服务
好吧,OK了。接下来大家可以用navicate去连接啦
centos系统编译安装nginx+php环境另加独立mysql教程
前端(nginx+php)ip:192.168.10.8
后端(独立mysql)ip:192.168.10.5
软件版本:libiconv-1.14.tar.gz mysql-5.1.63.tar.gz php-5.2.17.tar.gz php-5.2.17-fpm-0.5.14.diff.gz php-5.2.17-max-input-vars.patch
1.先在后端安装mysql
在192.168.10.5上只安装mysql.方法可以去看centos编译安装nginx+php-fpm+mysql里的mysql安装.
2.在前端安装php-fpm nginx和mysql-client
这里只说下安装mysql-client和php的编译安装.
代码如下 tar zxf mysql-5.1.63.tar.gz cd mysql-5.1.63
./configure--prefix=/usr/local/mysql--without-server
这里只需要加上--without-server就可以让mysql变成客户端了.
如果出现/bin/rm: cannot remove `libtoolt': No such file or directory,可以去看这篇文章Mysql安装:/bin/rm: cannot remove `libtoolt': No such file or directory.
没有问题后,执行命令:
代码如下 make make install
编译php的时候只需要加上--with-mysql=mysql客户端安装目录就可以了.这里我给出编译参数:
代码如下 ./configure--prefix=/usr/local/php--enable-fastcgi--enable-fpm--with-fpm-log=/var/log/php-fpm.log\
--with-fpm-conf=/etc/php-fpm.conf--with-fpm-pid=/var/run/php-fpm.pid--with-config-file-path=/etc\
--with-config-file-scan-dir=/etc/php.d--with-openssl--with-zlib--enable-bcmath--with-bz2--with-curl\
--enable-ftp--with-gd--enable-gd-native-ttf--with-jpeg-dir--with-png-dir--with-gettext--with-mhash\
--enable-mbstring--with-mcrypt--enable-soap--enable-zip--with-iconv=/usr/local/libiconv\
--with-mysql=/usr/local/mysql--with-mysqli=/usr/local/mysql/bin/mysql_config--without-pear
nginx的编译没有什么好说的了,我前面centos编译安装nginx+php-fpm+mysql这篇文章里已经有讲过了.
3.进行测试验证
当上面的一切都安装好之后,在后端的mysql里给出远程权限,如下:
代码如下 GRANT ALL PRIVILEGES ON*.* TO'root'@'%' IDENTIFIED BY'123456';
然后iptables上只允许192.168.10.8访问mysql端口,其他都拒绝.如:
代码如下 iptables-A RH-Firewall-1-INPUT-s 192.168.10.8-p tcp-m tcp--dport 3306-j ACCEPT
iptables-A RH-Firewall-1-INPUT-p tcp--dport 3306-j DROP
services iptables save
services iptables restart
然后在192.168.10.8上进行测试,是否可以远程连上mysql
mysql-h 192.168.10.5-u root-p
如果可以连上,就继续下一步的操作,不能连上的话请检查上面是否有错误的地方.
现在我们加个php页面来测试php是否可以连上mysql,脚本如下:
代码如下 ?php
$link=mysql_connect("192.168.10.5","root","123456");
if(!$link) echo"bad!";
else echo"ok!";
mysql_close();
?
成功的话是ok!的输出,失败的话是bad!的输出,我这里是成功的
mysql 5.5.x的只安装客户端.
需要的软件:libiconv-1.14.tar.gz mysql-5.5.25a.tar.gz
1.安装前的准备
安装前的准备,可以去看这篇文章centos编译安装nginx+php-fpm+mysql
2.安装libiconv
代码如下 ./configure--prefix=/usr/local/libiconv
make make install
3.只安装mysql客户端
代码如下 cmake. make mysqlclient libmysql
make install
这样就只安装了mysql客户端,然后可以输入whereis mysql来查看mysql安装位置.
whereis mysql
好了,可以看到跟yum安装的差不多.
4.安装php
以前mysql是5.1的时候,只需要加上--with-mysql=mysql客户端安装目录就可以了,但在mysql 5.5.x这个参数就要改变下了,下面是php的编译参数:
代码如下 ./configure--prefix=/usr/local/php--enable-fastcgi--enable-fpm--with-fpm-log=/var/log/php-fpm.log--with-fpm-conf=/etc/php-fpm.conf\
--with-fpm-pid=/var/run/php-fpm.pid--with-config-file-path=/etc--with-config-file-scan-dir=/etc/php.d\
--with-openssl--with-zlib--enable-bcmath--with-bz2--with-curl--enable-ftp\
--with-gd--enable-gd-native-ttf--with-jpeg-dir--with-png-dir--with-gettext--with-mhash\
--enable-mbstring--with-mcrypt--enable-soap--enable-zip--with-iconv=/usr/local/libiconv\
--with-mysql=shared,/usr--with-mysqli=shared,/usr/bin/mysql_config
大家可以看最后一行,--with-mysql=shared,/usr--with-mysqli=shared,/usr/bin/mysql_config这就是跟以前不同的行.好了,剩下的就不写了
求助centos7,mysql 启动服务出错的问题
一、my.cnf配置文件datadir项配置错误或被启动脚本篡改
这个问题不太说讲,主要是mysql自带的启动文件(/etc/init.d/mysqld)中会自动检测mysql的数据存储目录,若mysql新装,尚未初始化系统表,那么配置文件中的datadir项写不写无所谓,出现这种情况主要是在更改了mysql的数据存储目录,今天我出现的这个问题就在于此。
我的mysql安装后的配置文件中关于datadir项目的配置如下,而该配置文件存储于/etc/my.cnf,今儿不知动了什么东西,查来查去都没找着原因,后来打开该配置文件才发现,其中的datadir项目被篡改成/var/mysql/data了.....
[mysqld] datadir=/data/mysql socket=/tmp/mysql.sock user=mysql
二、进程里已经存在mysql进程
这种情况我很少遇到,若存在mysql进程但有不提供mysql服务(表现为其他客户端连接不上mysql服务器,例如php连接mysql时提示“连接失败”),这个时候就要看看有没有存在的mysql僵尸进程了,命令如下:
ps-ef|grep mysql
若存在,该命令执行后会列出存在的僵尸进程,kill-9 `pid`掉即可。
三、mysql的数据存储目录权限不足
这种情况发生于mysql第一次安装或升级,配置文件中的datatdir目录的权限要设定好,一般来说运行mysql的用户以及组就是mysql.mysql,那么解决权限不足问题的方法如下:
chown-R mysql.mysql/data/mysql##该命令仅为示例,其中/data/mysql就是mysql配置文件中datadir的目录##若为空,则默认为mysql安装目录下的data文件夹下
四、覆盖安装或升级mysql后,残余数据的影响
这种情况发生于mysql被覆盖安装或升级后,当然mysql无故宕机后也会有这种情况,可能会影响mysql启动的数据文件,一般存在于mysql的数据存储目录(这个目录依据my.cnf配置文件中的datadir而异),也就是存在于mysql数据存储目录下的mysql-bin.index文件,删除之即可。
五、selinux的问题,centos下最容易出现
selinux不甚了解,直接关掉。
##方法1:永久关闭seliux##修改 vi/etc/selinux/config#文件中设置SELINUX=disabled,然后重启服务器##方法2:暂时关闭seliux setenforce 0##如需每次开机都铃声关闭seliux,则可以在/etc/rc.d/rc.local文件中添加该命令
六、mysql运行状态下删除binary日志后重启失败
这是今天在群里的一个朋友出现的,特汇总于此;当mysql开启了二进制日志并且mysql在运行状态下用rm命令删除过mysql的binary日志文件的话,下次重启mysql你就悲剧了。
什么是binary日志?说白了就是mysql的数据目录下的mysql-bin.000001、mysql-bin.000002的文件。
解决方法就是修改配置文件临时关闭binary-log,然后删除mysql数据目录下的所有类似mysql-bin.000001、mysql-bin.000002的文件后再次重启,mysql即可启动成功。
#mysql配置关闭二进制日志找到如下语句注释掉即可#log-bin=mysql-bin#binlog_format=mixed
此步骤操作完毕之后,若还需要启用二进制日志,那么就要先停掉mysql服务,然后修改msyql的配置文件,再次重启即可。
另外再附上正确删除mysql二进制日志文件的方法(绝对不是rm-rf命令直接删这些文件):
#第一步通过shell或cmd登录进mysql这步没什么好说的 msyql-u root-p***#第二步在mysql下直接执行清理binary日志命令 mysql> reset master#注意:此处仅针对单台mysql而言,若有互备mysql则执行该命令有风险。