CentOS 7 用yum安装 MySQL

来源:互联网 发布:金知云林秀晶 编辑:程序博客网 时间:2024/06/18 10:33

原文摘自:http://www.linuxidc.com/Linux/2016-03/129683.htm
关于用户和权限相关的部分摘自:http://blog.csdn.net/ithomer/article/details/9971003
首先CentOS7 已经不支持mysql,因为收费了你懂得,所以内部集成了mariadb,而安装mysql的话会和mariadb的文件冲突,所以需要先卸载掉mariadb,以下为卸载mariadb,安装mysql的步骤。

#列出所有被安装的rpm package rpm -qa | grep mariadb
#卸载rpm -e mariadb-libs-5.5.37-1.el7_0.x86_64错误:依赖检测失败:libmysqlclient.so.18()(64bit) 被 (已安裝) postfix-2:2.10.1-6.el7.x86_64 需要libmysqlclient.so.18(libmysqlclient_18)(64bit) 被 (已安裝) postfix-2:2.10.1-6.el7.x86_64 需要
#强制卸载,因为没有--nodepsrpm -e --nodeps mariadb-libs-5.5.37-1.el7_0.x86_64
#安装mysql依赖yum install vim libaio net-tools

其他情况:

1、centos下yum暂时没有mysql-server直接安装包;MariaDB是MySQL社区开发的分支,也是一个增强型的替代品;
2、安装MariaDByum -y install mariadb-server mariadb mariadb-develsystemctl start mariadbsystemctl enable mariadbmysql_secure_installationfirewall-cmd --permanent --add-service mysqlsystemctl restart firewalld.serviceiptables -L -n|grep 3306

CentOS7的yum源中默认好像是没有mysql的。为了解决这个问题,我们要先下载mysql的repo源。

1.下载mysql的repo源

$ wget http://repo.mysql.com/mysql-community-release-el7-5.noarch.rpm

2.安装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

根据步骤安装就可以了,不过安装完成后,没有密码,需要重置密码。

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

然后,重启服务:

$ service mysqld restartRedirecting to /bin/systemctl restart  mysqld.service==== AUTHENTICATING FOR org.freedesktop.systemd1.manage-units ===Authentication is required to manage system services or units.Authenticating as: root

如果出现这种错误,则说明权限不足,用sudo或者root运行

$ sudo service mysqld restart

登录重置密码:

$ mysql -u rootmysql > use mysql;mysql > update user set password=password(‘123456‘) where user=‘root‘;mysql > exit;

5.开放3306端口

$ sudo vim /etc/sysconfig/iptables

添加以下内容:

-A INPUT -p tcp -m state --state NEW -m tcp --dport 3306 -j ACCEPT

保存后重启防火墙:

$ sudo service iptables restart

这样从其它客户机也可以连接上mysql服务了。

MYSQL启动后报:ERROR! The server quit without updating PID file错误的问题解决
MYSQL日志:Can’t find file: ‘./mysql/plugin.frm’ (errno: 13 - Permission denied)

1、权限

chown -R mysql:mysql /home/mysql/data” “chmod -R 755 /home/mysql/data

entos7的selinux问题:打开/etc/selinux/config,把SELINUX=enforcing改为SELINUX=disabled后存盘退出重启机器。

附录:
1、建议给mysql创建对应的用户和组专门管理mysql,不宜每次都用root账户来登录管理
用户可以建立一个专门用于MySQL的用户组和用户名,用于启动和关闭MySQL数据库,以及对数据库的一些操作。建立用户组可以使用如下命令:

#groupadd mysql     //创建mysql组 
#groupadd [-g GID] GROUP

其中:
GROUP:是要添加的组名
-g:用于指定 GID,默认为使用当前最大的 GID 加1
举例: 添加一个新组 leader

查询组信息:

[root@iz2ze6u0apce8jpapxeubpz tar.gz]# grep mysql /etc/group     mysql:x:1000:[root@iz2ze6u0apce8jpapxeubpz tar.gz]# grep mysql /etc/gshadow   mysql:!::[root@iz2ze6u0apce8jpapxeubpz tar.gz]# cat /etc/group |grep mysqlmysql:x:1000:[root@iz2ze6u0apce8jpapxeubpz tar.gz]# cat mysql /etc/gshadow |grep mysqlcat: mysql: No such file or directorymysql:!::[root@iz2ze6u0apce8jpapxeubpz tar.gz]# 

2)groupmod
groupmod 用于修改系统已存在的组账号。格式如下:

#groupmod [options] GROUP

其中:
GROUP:为要修改的组账户名
常用选项:
-g GID:重新指派 GID
-n NEW_GROUP:更改组名为 NEW_GROUP
举例: 将 mysql组更名为 mysqls

# groupmod -n mysqls mysql# grep mysql /etc/groupmysqls:x:1000:

将 leaders 组的 GID 改为 3000

# groupmod -g 3000 leaders# grep leader /etc/groupleaders:x:3000:

用户管理
1)useradd
useradd 用于添加用户账号或设置添加用户使用的默认信息。格式如下:

格式1:useradd [options] LOGIN格式2:useradd -D格式3:useradd -D [options]

说明:
格式1:用于添加用户账号,LOGIN 为用户登录账号
格式2:用于显示添加用户使用的默认信息
格式3:用于设置添加用户使用的默认信息

添加用户选项:
选项 说明
-u UID 指定新用户的 UID,默认为使用当前最大的 UID 加1
-g GROUP 指定新用户的主组
-G GROUP1[,GROUP2,…[,GROUPN]]] 指定新用户的附加组
-d HOME_DIR 指定新用户的登录目录
-s SHELL 指定新用户使用的 Shell,默认为 bash

改变用户默认值选项:
在配置文件 /etc/login.defs 和 /etc/default/useradd 中存放了用户默认数据。

使用举例:
1、创建一个新用户 newuser,同时创建用户自家目录

# useradd newuser

2、创建一个新用户 tom,同时加入 staff 附加组中

# useradd -G staff tom

3、创建一个新用户 webmaster,不创建用户自家目录,指定登录目录 /www,同时加入 apache 附加组中

# useradd -d /www -M -G apache webmaster

2)usermod
usermod 用于修改系统已存在的组账号。格式如下:

#usermod [options] LOGIN

其中:
LOGIN:为要修改的用户账号名
选项:-c、-d、-e、-f、-g、-G、-s、-u 的含义与 useradd 选项的含义相同
添加了如下选项:
-l NEW_LOGIN:更改用户登录名为 NEW_LOGIN
-c COMMENT 说明用户的附加信息,如全名等
-e EXPIRE_DATE 指定用户的登录失效时间,格式为 YYYY-MM-DD
-f INACTIVE 指定在密码过期后多少天即关闭该账号, 默认值为 -1,即不做限制
-k SKEL_DIR 指定 skel 目录,默认存放在 /etc/skel/
-m 创建新用户的自家目录,默认值
-M 不创建新用户的自家目录
选项 说明
-b BASE_DIR
定义使用者所属目录的上级目录。用户名称会附加在BASE_DIR后面用来建立新使用者的目录。 当
然使用-d后则此选项无效。
-e
EXPIRE_DATE
定义使用者账号失效日期。
-f INACTIVE 定义在密码过期后多少天即关闭该账号。
-g GROUP 定义新账号起始组名或GID。组名必须为现已存在的组名。GID也必须为现已存在的GID。
-s SHELL 定义用户默认使用的 shell。
-L:锁定用户账号
-U:对用户账号解除锁定

举例:
1、将 newuser2 添加到组 staff 中

# usermod -G staff newuser2

2、修改 newuser 的用户名为 newuser1

# usermod -l newuser1 newuser

3、锁定账号 newuser1

# usermod -L newuser1

4、解除对 newuser1 的锁定

# usermod -U newuser1

3)userdel
userdel 用于删除系统已存在的组账号。格式如下:

userdel [-r] LOGIN

其中:
LOGIN:为要删除的用户账号名
-r:同时删除用户的自家目录和 mail 的假脱机文件
例如:
1、删除用户 webmaster

# userdel webmaster

2、删除用户 newuser1,同时删除其自家目录

# userdel -r newuser1

3.查询用户

[root@iz2ze6u0apce8jpapxeubpz tar.gz]# cat /etc/passwd |grep mysql               mysql:x:1000:1000::/usr/local/mysql:/bin/bash
# cat /etc/passwd 可以查看所有用户的列表# w 可以查看当前活跃的用户列表# cat /etc/group 查看用户组

首先,用root用户登陆Linux系统或者使用su、sudo等命令提升到root权限。
其次,修改帐户密码,只需要使用passwd命令即可,该命令详细介绍如下:
passwd 选项 用户名
使用的选项:
  -l 锁定口令,即禁用账号。
  -u 口令解锁。
  -d 使账号无口令。
  -f 强迫用户下次登录时修改口令。
  如果默认用户名,则修改当前用户的口令。
  例如,假设当前用户是sam,则下面的命令修改该用户自己的口令:

$ passwd  Old password:******  New password:*******  Re-enter new password:*******

  如果是超级用户,可以用下列形式指定任何用户的口令:

 # passwd sam  New password:*******  Re-enter new password:*******

  普通用户修改自己的口令时,passwd命令会先询问原口令,验证后再要求用户输入两遍新口令,如果两次输入的口令一致,则将这个口令指定给用户;而超级用户为用户指定口令时,就不需要知道原口令。
  为了系统安全起见,用户应该选择比较复杂的口令,例如最好使用8位长的口令,口令中包含有大写、小写字母和数字,并且应该与姓名、生日等不相同。
  为用户指定空口令时,执行下列形式的命令:

  # passwd -d sa

  此命令将用户sam的口令删除,这样用户sam下一次登录时,系统就不再询问口令。
  passwd命令还可以用-l(lock)选项锁定某一用户,使其不能登录,例如:

例如:  # passwd