一、如果某台Linux服务器ping不通域名, 如下提示:
[root@localhost ~]# ping www.baidu.com
ping: unknown host www.baidu.com
首先确定已经连接上路由器,并且路由器能够访问外网,可以通过访问网关进行确定
[root@localhost ~]# ping 8.8.8.8
PING 192.168.1.1 (192.168.1.1) 56(84) bytes of data.
64 bytes from 192.168.1.1: icmp_seq=1 ttl=64 time=2.96 ms
64 bytes from 192.168.1.1: icmp_seq=2 ttl=64 time=1.75 ms
如果确定网络没问题的情况下, 可以通过如下步骤寻找解决办法:
1) 确定设置了域名服务器, 没有的话, 建议设置Google的公共DNS服务, 它应该不会出问题的
[root@localhost ~]# cat /etc/resolv.conf
如果不存在直接创建一个文件
因为我的DNS没有设置所以导致了ping外网ping不通。将dns添加到该文件中
[root@localhost ~]# vi /etc/resolv.conf
nameserver 192.168.20.10 (添加)
或者加入192.168.1.1 (默认网关)
二、如果你的yum不可用例如:
可以将/etc/yum.repos.d/CentOS-Media.repo 的源文件:
改为:
name=server
baseurl=file:///mnt
enabled=0
gpgcheck=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release
原因是路径不对,改完之后执行service network restart 再执行yum clean all 或 yum update,等待下载完成。
三、如果使用yum安装mysql下载
wget http://dev.MySQL.com/get/Downloads/MySQL-5.7/mysql-5.7.11-Linux-glibc2.5-x86_64.tar.gz 不成功时在
http://mirrors.163.com/centos/6/os/x86_64/Packages/ 找到wget-1.12-10.el6.x86_64.rpm 下载后并执行
rpm -ivh --force --nodeps wget-1.12-10.el6.x86_64.rpm 之后wget 就可以正常使用了。
四、Mysql数据库的安装方式:
1、下载三个文件
2、安装前执行rpm -qa | grep -i mysql检查是否已经安装。
3、如果没有安装跳过此步骤:
rpm -ev --nodeps MySQL-server-5.6.37-1.el6.x86.x86_64
rpm -ev --nodeps MySQL-client-5.6.37-1.el6.x86.x86_64
4、删除user用户并查询遗留的文件
userdel mysql
whereis mysql
删除上一步结果
rm -rf /usr/bin/mysql /usr/lib64/mysql /usr/share/mysql /usr/share/man/man1/n1/mysql.1.gz
5、重新安装rpm包
rpm -ivh --force --nodeps MySQL-server-5.6.17-1.el6.x86.x86_64
rpm -ivh --force --nodeps MySQL-devel-5.6.14-1.el6.x86.x86_64
rpm -ivh --force --nodeps MySQL-client-5.6.17-1.el6.x86.x86_64
安装完成启动mysql服务,
启动
ERROR! The server quit without updating PID file (/var/lib/mysql/ql/localhost.localhost.localdomain.pid)
修改 vi /usr/my.cnf
datadir = /tmp
socket=/tmp/mysql.sock
然后执行
/usr/bin/mysql_install_db --user=mysql --ldata=/tmp
[ERROR] 1 Can’t create/write to file ‘/home/yulele/mysql/data/3306/data/mysql/db.MYI’ (Errcode: 13 - Permission denied)
报错很明显,没有权限。系统centos 6.5
解决方法:
1.tmpDir设置为/tmp
2.一定要自定义数据文件目录,怎么解决权限问题
2.1 如果系统seLinux开启了,setsebool -P mysqld_disable_trans=1 开启对mysql守护进程的权限 ,并且从自定义目录根开始授用户读写权限;
2.2如果系统seLinux已关闭,从自定义目录根开始授用户读写权限,就可以解决问题。
切记:并不是给文件夹最高的权限就可以使用的!!!可以根据需要自定义。
6、执行完启动mysql
7、若无法连接到mysql请使用软连接执行:
ln -s /tmp/mysql.sock /var/lib/mysql/mysql.sock
ln -s /tmp/sjj1310.localdomain.pid /var/lib/mysql/sjj1310.localdomain.pid
描述:如果你在MySQL配置文件 /etc/tc/my.cnf 里修f 里修改了修改了mysql.sock 的产生 的产生位置,则需要做一个链接指向新的文件位置。 ln -sv /home/data/mysql/ql/mysql.sock /va /var/lib/mysql/ql/mysql.sock 上面的 上面的命令给 令给 mysql.sock 建立一 建立一个软链接,否则使用mysql客户端登陆的时候会提示找不到文件 /var/lib/mysql/ql/mysql.sock
解决方案:
rpm -qa | grep -i mysql
rpm -ev 上一步结果
rpm -ev MySQL-server-5.6.37-1.el6.x86_64
rpm -ev XXX
userdel mysql
whereis mysql
删除上一步结果
rm -rf /usr/bin/mysql /usr/lib64/mysql /usr/share/mysql /usr/share/man/man1/mysql.1.gz
安装的rpm包
rpm -ivh xxx.rpm
启动
ERROR! The server quit without updating PID file (/var/lib/mysql/localhost.localdomain.pid)
执行
/usr/bin/mysql_install_db --user=mysql --ldata=/var/lib/mysql --explicit_defaults_for_timestamp
执行失败的话将
my-default.cnf放在/usr/share/mysql/
mysql服务加入开机自启动项
把mysql下的support-files/mysql.server服务脚本放到系统服务,并设置运行权限,这样就可以使用service mysql start启动服务
-
cp support-files/mysql.server /etc/init.d/mysql
-
chmod +x /etc/init.d/mysql
查看是否添加成功
3. chkconfig --list mysql
1、先检查系统是否装有mysql
rpm -qa | grep mysql
这里返回空值,说明没有安装
这里执行安装命令是无效的,因为centos-7默认是Mariadb,所以执行以下命令只是更新Mariadb数据库
yum install mysql
删除可用
yum remove mysql
2、下载mysql的repo源
# wget http://repo.mysql.com/mysql-community-release-el7-5.noarch.rpm
安装mysql-community-release-el7-5.noarch.rpm包
# sudo rpm -ivh mysql-community-release-el7-5.noarch.rpm
安装这个包后,会获得两个mysql的yum repo源:/etc/yum.repos.d/mysql-community.repo,/etc/yum.repos.d/mysql-community-source.repo。
3、安装mysql
# sudo yum install mysql-server
根据步骤安装就可以了,不过安装完成后,没有密码,需要重置密码。
安装后再次查看mysql
如果报错,内容含有
Error: Package: mysql-community-libs-5.6.35-2.el7.x86_64 (mysql56-community)
Requires: libc.so.6(GLIBC_2.17)(64bit)
Error: Package: mysql-community-server-5.6.35-2.el7.x86_64 (mysql56-community)
Requires: libc.so.6(GLIBC_2.17)(64bit)
Error: Package: mysql-community-server-5.6.35-2.el7.x86_64 (mysql56-community)
Requires: systemd
Error: Package: mysql-community-server-5.6.35-2.el7.x86_64 (mysql56-community)
Requires: libstdc++.so.6(GLIBCXX_3.4.15)(64bit)
Error: Package: mysql-community-client-5.6.35-2.el7.x86_64 (mysql56-community)
Requires: libc.so.6(GLIBC_2.17)(64bit)
You could try using --skip-broken to work around the problem
You could try running: rpm -Va --nofiles --nodigest
解决:
#yum install glibc.i686
# yum list libstdc++*
4、重置密码
重置密码前,首先要登录
# mysql -u root
登录时有可能报这样的错:ERROR 2002 (HY000): Can’t connect to local MySQL server through socket ‘/var/lib/mysql/mysql.sock’ (2),原因是/var/lib/mysql的访问权限问题。下面的命令把/var/lib/mysql的拥有者改为当前用户:
# sudo chown -R openscanner:openscanner /var/lib/mysql
如果报chown: 无效的用户: "openscanner:openscanner"
错误,更换命令,并用 ll 查看目录权限列表
chown root /var/lib/mysql/
ll
附:
① 更改文件拥有者 (chown )
[root@linux ~]# chown 账号名称 文件或目录
② 改变文件的用户组用命令 chgrp
[root@linux ~]# chgrp 组名 文件或目录
③ 对于目录权限修改之后,默认只是修改当前级别的权限。如果子目录也要递归需要加R参数
Chown -R : 进行递归,连同子目录下的所有文件、目录
然后,重启服务:
接下来登录重置密码:
mysql -u root -p
mysql > use mysql;
mysql > update user set password=password('123456') where user='root';
mysql > exit;
重启mysql服务后才生效 # service mysqld restart
7、用获得的密码进入MySQL命令行模式
[root@localhost ~]# mysql -u root -p
显示结果如下:
用一下命令修改密码,密码可以自定义,最好复杂一点。
mysql> SET PASSWORD = PASSWORD('123456');
设置root帐号的访问权限
mysql>GRANT ALL PRIVILEGES ON *.* TO root@"%" IDENTIFIED BY "123456";
退出mysql并重新启动MySQL,使用修改后的新密码进入MySQL
[root@localhost ~]# exit
[root@localhost ~]# service mysql restart
[root@localhost ~]# mysql -u root -p
再输入密码即可登陆进入mysql命令行模式,完成数据库密码修改。
乱码问题分析
MySQL创建数据库时指定编码很重要,很多开发者都使用了默认编码,安装了之后不会再去设置编码的问题(当然可能我很初级的原因),乱码问题可是防不胜防。
网页数据一般采用UTF8编码,而数据库默认为latin1 。我们可以通过修改数据库默认编码方式为UTF8来减少数据库创建时的设置,也能最大限度的避免因粗心造成的乱码问题。
我们遵循的标准是,数据库,表,字段和页面或文本的编码要统一起来,我们可以通过命令查看数据库当前编码:
mysql> SHOW VARIABLES LIKE 'character%';
1
这是在出现乱码的时候显示的内容,发现很多对应的都是 latin1,我们的目标就是在下次使用此命令时latin1能被UTF8取代。
问题解决
* 1、第一阶段:*
在mysql控制台通过编码命令进行设置:
SET character_set_client = utf8;
SET character_set_connection = utf8;
SET character_set_database = utf8;
SET character_set_results = utf8;
SET character_set_server = utf8;
然后 mysql> SHOW VARIABLES LIKE 'character%'; 你可以看到全变为 utf8 。
但是,这只是一种假象。此种方式只在当前状态下有效,当重启数据库服务后失效。 自己可以尝试一下!
这也是网上很多的解决方法,不见效果,自己当时也尝试了很多次,不成功!这里提出来,希望大家不要采坑!
* 2、第二阶段:*
如何正确的修改,我们只有修改my.cnf(一般都是在/etc/my.cnf目录下)文件,
从my.cnf下手(标签下没有的添加,有的修改)
补充:
在Server version: 5.7.17 MySQL Community Server (GPL)版本中,配置文件的位置是:/etc/mysql/mysql.conf.d/mysqld.cnf
[client]
default-character-set=utf8
[mysql]
default-character-set=utf8
[mysqld]
default-character-set=utf8
以上3个section都要加default-character-set=utf8,平时我们可能只加了mysqld一项。
注意:上边的配置需要根据具体的mysql版本,不同的mysql版本可能不包含上述的三个section,也没有必要全部都设置,平时我们可能只加了mysqld一项。
例如我的配置文件和修改之后的效果(注意我的mysql版本):
我的这个my.cnf文件只有mysqld 这个section,因此可以直接加上default-character-set=utf8 即可。
如果,你的配置文件含有client、mysql 标签的话,可以在下边加入,例如下边的配置示例:
修改之后,然后重启mysql服务:
service mysqld restart
1
然后登入mysql控制台查看:
编码已经变成utf8,插入一条数据查看结果是否正确:
到此为止!编码的问题已经解决!
番外话:
但是有一个值得注意的是,MySQL的一些版本(Server version: 5.6.27-log Source distribution)
如果在创建数据库的时候,编码方式选择的utf8,例如下边:
正常的使用却没有出现任何的编码问题,进入mysql控制台,查看编码:
可以看到下边两个是utf8的:
| character_set_database | utf8
| character_set_server | utf8
1
2
因此,在进行开发的时候不妨先通过下边的命令确认具体的编码之后,再去开发,以免出现编码的问题:
mysql> show variables like'%char%';
最新版:Server version: 5.7.19 MySQL Community Server (GPL) 请看最后补充内容!!!
默认情况下的编码方式为:
配置文件位置: /etc/my.cnf
修改方式:
1、在[client]字段里加入default-character-set=utf8,如下:
[client]
default-character-set=utf8
1、在[mysqld]字段里加入character-set-server=utf8,如下:
[mysqld]
character-set-server=utf8
1、在[mysql]字段里加入default-character-set=utf8,如下:
[mysql]
default-character-set=utf8
1
默认情况下,我只修改了[mysqld],修改后的/etc/my.cnf内容如下: