最近项目新申请了云服务器,老大让我搭了下环境,在安装MySql的时候遇到的坑稍微多点,所以在这里做个记录,我的安装方式不是通过安装包来安装的,而是通过yum来安装的,这样倒是可以省去很多的事情,下面来说说具体的安装过程。
一、卸载原有mysql |
因为现在mysql数据库在Linux上实在是太流行了,所以目前下载的主流Linux系统版本基本上都集成了mysql数据库在里面,我们可以通过如下命令来查看我们的操作系统上是否已经安装了mysql数据库;
rpm -qa | grep mysql // 这个命令就会查看该操作系统上是否已经安装了mysql数据库
有的话,我们就通过 rpm -e 命令 或者 rpm -e –nodeps 命令来卸载掉
rpm -e mysql // 普通删除模式
rpm -e --nodeps mysql // 强力删除模式,如果使用上面命令删除时,提示有依赖的其它文件,则用该命令可以对其进行强力删除
在删除完以后我们可以通过 rpm -qa | grep mysql 命令来查看mysql是否已经卸载成功!!
二、通过yum来进行mysql的安装 |
一开始是通过这个命令来直接安装的:
yum install mysql mysql-server mysql-devel
安装mysql和mysql-devel都成功,但是安装mysql-server失败,如下:
[localhost ~]# yum install mysql-server
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
* base: mirrors.sina.cn
* extras: mirrors.sina.cn
* updates: mirrors.sina.cn
No package mysql-server available.
Error: Nothing to do
查资料发现是CentOS 7 版本将MySQL数据库软件从默认的程序列表中移除,有两种方式可以解决,用*MariaDB*来代替,另一种方式就是从官网上下载安装
wget http://dev.mysql.com/get/mysql57-community-release-el7-7.noarch.rpm //下载YUM库
yum localinstall -y mysql57-community-release-el7-7.noarch.rpm //安装YUM库
yum install -y mysql-community-server //安装数据库
systemctl start mysqld.service //启动数据库服务
mysql -uroot -p //默认空密码
重置root密码后重启mysql服务:
update mysql.user set authentication_string=password("yourpassword") where user="root" and Host="localhost";
flush privileges;
quit;
systemctl restart mysqld;
在这的时候出了一个问题:
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)
请修改my.cnf,添加skip-grant-tables和skip-networking:
vi /etc/my.cnf
[mysqld]
skip-grant-tables
skip-networking
重启mysql,然后重复以上修改密码步骤即可,记得修改完后,去掉my.cnf添加的两行。如果还有其他的一些问题,具体的可以参考这篇博客:http://www.cnblogs.com/ivictor/p/5142809.html
三、添加远程登录用户 |
配完以上步骤之后,也就是在本地使使,要是想远程连接的话还需要做具体的配置。
use mysql;
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '你的密码' WITH GRANT OPTION;
注:'%'代表任意地址,也可以指定IP
检查用户表,刷新内存权限
select host, user from user;
FLUSH PRIVILEGES;
现在的话,数据库就可以使用了,后续的话,可以设置防火墙,或者编码格式等等。
关闭防火墙
centos 7:
systemctl stop firewalld.service #停止
systemctl disable firewalld.service #禁用
之前的版本:
service iptables stop #停止
chkconfig iptables off #禁用
查看mysql的状态:
* 查看当前mysql运行状态
mysql>status
参数说明:
haracter_set_client:客户端请求数据的字符集。
character_set_connection:从客户端接收到数据,然后传输的字符集。
character_set_database:默认数据库的字符集,无论默认数据库如何改变,都是这个字符集;如果没有默认数据库,使character_set_server指定的字符集,此参数无需设置。
character_set_filesystem:把操作系统上文件名转化成此字符集,即把character_set_client转换character_set_filesystem,默认binary即可。
character_set_results:结果集的字符集。
character_set_server:数据库服务器的默认字符集。
character_set_system:这个值总是utf8,不需要设置,存储系统元数据的字符集。