新手学Linux(八)----MySql安装(Centos7)-阿里云开发者社区

开发者社区> 数据库> 正文

新手学Linux(八)----MySql安装(Centos7)

简介:     最近项目新申请了云服务器,老大让我搭了下环境,在安装MySql的时候遇到的坑稍微多点,所以在这里做个记录,我的安装方式不是通过安装包来安装的,而是通过yum来安装的,这样倒是可以省去很多的事情,下面来说说具体的安装过程。

    最近项目新申请了云服务器,老大让我搭了下环境,在安装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,不需要设置,存储系统元数据的字符集。

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

分享:
数据库
使用钉钉扫一扫加入圈子
+ 订阅

分享数据库前沿,解构实战干货,推动数据库技术变革

其他文章