centos安装mysql

来源:互联网 发布:网络教育不能考公务员 编辑:程序博客网 时间:2024/06/07 20:31

由于centOS7不支持在线安装,因此只能手动安装;

Centos默认安装MariaDB此数据库与mysql有冲突,安装mysql前必须卸载次数据库

rpm -q  ...

1.下载mysql

http://dev.mysql.com/downloads/mysql/

服务端:(mysql-community-server-5.7.14-1.el7.i686.rpm)

客户端:(mysql-community-client-5.7.14-1.el7.i686.rpm)

 

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

#强制卸载,因为没有--nodePS

rpm -e --nodeps mariadb-libs-5.5.37-1.el7_0.x86_64

#安装mysql5.5.39的rpm包

rpm -ivh /home/liwei/MySQL-server-5.5.39-2.el6.x86_64.rpm

rpm -ivh /home/liwei/MySQL-client-5.5.39-2.el6.x86_64.rpm

#拷贝配置文件

cp /usr/share/mysql/my-medium.cnf /etc/my.cnf,改名为my.cnf作为mysql配置文件。

#修改响应的配置文件

vim /etc/my.cnf

#把mysql的data拷贝到制定的目录

mv /var/lib/mysql /home/mysql/data/

3.启动mysql

#/usr/sbin/mysql &

可以将下面的内容添加到my.cnf

   件中:

[mysqld]

      user=mysql

再次启动

原因:

在虚拟机中安装了CentOS时安装了Nami版的Rendmine,没有设置MySQL自动启动,手动启动时出现 Please read "Security" section of the manual to find out how to run mysqld as root!错误,根据提示,查了/opt/redmine-1.2.1-1/mysql/docs/mysql.infoSecurity部分,发现是因为MySQL为了安全,不希望root用户直接启动mysql

 

在虚拟机中安装了CentOS时安装了Nami版的Rendmine,没有设置MySQL自动启动,手动启动时出现 Please read "Security" section of the manual to find out how to run mysqld as root!错误,根据提示,查了/opt/redmine-1.2.1-1/mysql/docs/mysql.infoSecurity部分,发现是因为MySQL为了安全,不希望root用户直接启动mysql。下面是文档中的原文:

 

 *Never run the MySQL server as the Unix `root' user. This is
  extremely dangerous, because any user with the `FILE' privilege is
  able to cause the server to create files as `root' (for example,
  `~root/.bashrc'). To prevent this, *Note `mysqld': mysqld. refuses
  to run as `root' unless that is specified explicitly using the
  `--user=root' option.

永远不要使用root帐号启动MySQL Server。这样做很微笑,因为拥有FILE'权限的用户会使得MySQL Server使用root帐户创建文件(比如,~root/.bashrc),为了防止类似的事情发生,mysqld默认拒绝用户使用root帐户启动,但root用户可以通过在命令后面加上"--user=root"选项来强行启动mysqld

  *Note `mysqld': mysqld. can (and should) be run as an ordinary,
  unprivileged user instead. You can create a separate Unix account
  named `mysql' to make everything even more secure. Use this
  account only for administering MySQL. To start *Note `mysqld':
  mysqld. as a different Unix user, add a `user' option that
  specifies the user name in the `[mysqld]' group of the `my.cnf'
  option file where you specify server options. For example:

          [mysqld]
          user=mysql

   与使用root用户启动mysqld相比,更好的方法是使用一个普通的、没有高级权限的用户帐户允许mysqld,例如创建一个名为mysql的用户帐户来专门管理MySQL。使用其帐启

   MySQL的方法是在mysqld命令后面加上一个用户选项,这个用户属于mysqld用户组并且位于my.cnf配置文件中。例如在创建mysql帐户后,可以将下面的内容添加到my.cnf

   件中:

[mysqld]

      user=mysql

  This causes the server to start as the designated user whether you
  start it manually or by using *Note `mysqld_safe': mysqld-safe. or
  *Note `mysql.server': mysql-server. For more details, see *Note
  changing-mysql-user::.

这个选项可以使你使用指定的用户帐户启动MySQL,无论是mysqld_safe还是mysql.server命令,都可以使用。

  Running *Note `mysqld': mysqld. as a Unix user other than `root'
  does not mean that you need to change the `root' user name in the
  `user' table. _User names for MySQL accounts have nothing to do
  with user names for Unix accounts_.

不要使用Unixroot用户启动并不意味着你要修改MySQL中的user表中的root用户名,因为Unixroot帐户和MySQLroot帐户没有什么关系。

 

4.远程登录

A.开启远程登录

Mysql>GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'a1b2c3' WITH GRANT OPTION;

Mysql>FLUSH PRIVILEGES;

#service mysql stop;

#service mysql start;

B.关闭防火墙

Centos7默认开发firewall服务

#systemctl stop firewalld.service  #停止firewall

#systemctl disable firewalld.service  #禁止firewall开机启动

0 0
原创粉丝点击