安装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数据库就可以成功。
后续遇到问题接着补充!