redhat6.5部署python爬虫项目——mysql(四)

安装mysql及遇到的问题:

1、下载安装

// 检查是否有mysql
rpm -qa|grep mysql

// 如果不想用此版本可以卸载
rpm -e --nodeps mysql-libs-xxxxx

//下载
wget http://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.12-1.el6.x86_64.rpm-bundle.tar

// 解压
tar -xf mysql-5.7.12-1.el6.x86_64.rpm-bundle.tar

cd mysql-5.7.12-1.el6.x86_64.rpm-bundle.tar

按顺序安装:

rpm -ivh mysql-community-common-5.7.12-1.el6.x86_64.rpm

rpm -ivh mysql-community-libs-5.7.12-1.el6.x86_64.rpm --force --nodeps

rpm -ivh mysql-community-devel-5.7.12-1.el6.x86_64.rpm --force --nodeps

rpm -ivh mysql-community-client-5.7.12-1.el6.x86_64.rpm --force --nodeps

rpm -ivh mysql-community-server-5.7.12-1.el6.x86_64.rpm --force --nodeps

2、启动mysql并配置:

// 启动mysql
service mysql start


// 登录root账号,初次登录密码为空
mysql -u root -p

如果此时报错。需要密码的话,就要去修改mysql配置文件 :

vim /etc/my.cnf,在文件末尾加上:skip-grant-tables 。然后把保存重启,再次登录。

修改密码:

mysql> use mysql

mysql> update user set password_expired='N' where user='root'; 

mysql> update user set authentication_string=password('root') where user=‘root';

mysql> flush privileges;

然后再去编辑 my.cnf文件,一是去掉之前的 skip-grant-tables ,二是在 client 下加上 default-character-set=utf8 。因为不加的话会出现中文乱码的情况!!!

 

补充:

一、数据库中文乱码:

启动mysql,输入 show variables like '%char%'; 如果看到character_set_database 和character_set_server 等不是utf-8。这就是中文乱码原因。

关闭mysql,修改 /etc/my.cnf文件, 如果没有找到my.cnf文件,就从 /usr/share/mysql/ 中将 my-meduim.cnf 复制到  /etc/  下并重命名为 my.cnf。

// 拷贝文件
cp /usr/share/mysql/my-medium.cnf /etc/my.cnf


vim /etc/my.cnf


// client下加入这行代码
default-character-set=utf8

重启服务,查看数据库的编码情况

mysql restart;



show variables like '%char%';

二、防火墙及端口问题:

在本地navicat向服务器远程连接数据库时失败。

先在本地向服务器ping一下,如果通则接下来操作。如果不通看下服务器的防火墙是否关闭。

然后检查服务器上mysql的默认端口3306是否开放,我连接不上因为端口未打开。

show variables like '%port%';

打开防火墙端口:

// 查看防火墙状态
service iptables status


//编辑防火墙文件
vim /etc/sysconfig/iptables

// 在文件中加入代码
A INPUT -m state --state NEW -m tcp -p tcp --dport 3306 -j ACCEPT

//重启防火墙
service iptables restart

端口打开也会连接失败,因为一般mysql是不允许除了本机用户以外的用户进行访问的,所以需要给特定ip的用户开放权限,通过这个用户去访问连接。

创建账户及权限;

create user 'cnki_test'@'%' identified by '123456';
grant all on *.* to 'cnki_test'@'%';
flush privileges;

然后,再用navicat连接服务器mysql数据库就可以成功。

后续遇到问题接着补充!

上一篇:MySQL高级--优化配置文件


下一篇:CentOS-MySQL主从复制配置