一步到位Linux中安装配置MySQL及补坑

  Windows上安装MySQL也就不讲了,基本上一路点击下一步就可完成,现在讲讲Linux上布署Mysql,虽然也有很多网友列出了详细的步骤,可能是因为版本过老的问题导致即使按照上面一步步来也还是出现不少问题,所以在此列出以作防坑指南。

   至于Mysql是什么,能做什么那就不用介绍了,主要讲安装。

环境  

      CentOS7.0

  Mysql-5.7.17

  用root用户安装

  关闭防火墙或让涉及到的端口通过。

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

然后执行下面命令,使防火墙立即生效。
service iptables restart

下载

  去官网下载 :http://dev.mysql.com/downloads/mysql/

  下载后放进CentOS中的/usr/local/ 文件夹中,并解压到当前文件中 /usr/local/mysql,Mysql有很多版本,没选对可能也会出现各种问题。

准备系统帐户

groupadd mysql #添加用户组

useradd -r -g mysql -s /bin/false mysql #添加mysql用户

安装

  进入/usr/local文件夹解压mysql到当前文件夹:

cd /usr/local

tar -zxvf mysql-5.7.17-linux-glibc2.5-x86_64.tar.gz 

  重命名为mysql

mv mysql-5.7.17-linux-glibc2.5-x86_64 mysql

配置相关的启动配置文件

1、复制my.cnf 到 /etc/my.cnf (mysqld启动时自动读取)

cp my-default.cnf /etc/my.cnf

  如果"/etc/"目录下没有my.cnf配置文件,请到"/usr/share/mysql/"下找到*.cnf文件,拷贝其中一个合适的配置文件到"/etc/"并改名为"my.cnf"中。命令如下:

cp /usr/share/mysql/my-medium.cnf  /etc/my.cnf

 

2、解决一下乱码问题
  vi /etc/my.cnf
  [mysql]
  default-character-set=utf8
  [mysqld]
  default-storage-engine=INNODB
  character_set_server=utf8

[client]
#password    = your_password
port        = 3306
socket        = /usr/local/mysql/data/mysql.sock
default-character-set=utf8

# Here follows entries for some specific programs

# The MySQL server
[mysqld]
port        = 3306
socket        = /usr/local/mysql/data/mysql.sock
datadir=/usr/local/mysql/data
skip-locking
key_buffer_size = 16M
max_allowed_packet = 1M
table_open_cache = 64
sort_buffer_size = 512K
net_buffer_length = 8K
read_buffer_size = 256K
read_rnd_buffer_size = 512K
myisam_sort_buffer_size = 8M
default-storage-engine=INNODB
character_set_server=utf8
lower_case_table_names=1

3、复制mysql.server 到/etc/init.d/ 目录下【目的想实现mysqld -install这样开机自动执行效果】
  【/etc/init.d/ 目录,等效于注册表HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\services 记录有哪些服务】

cp mysql.server /etc/init.d/mysql (mysql是服务名)

4、修改 /etc/init.d/mysql 参数
  vi /etc/init.d/mysql
  给与2个目录位置

basedir=/usr/local/mysql
datadir=/usr/local/mysql/data
port = 3306

 

 

4、给目录/usr/local/mysql 更改拥有者

chown -R mysql:mysql /usr/local/mysql

   在/etc/profile里面在文件末尾添添加一个路径 

 初始化 mysql 的数据库

  mysql_install_db (老版本的做法)
  新版本:

scripts/mysql_install_db --user=mysql --datadir=/usr/local/mysql/data

  生成出一个data目录,代表数据库已经初始化成功

启动mysql

/usr/local/mysql/bin/mysqld_safe --user=mysql
检查ps -ef|grep mysql

  再给超级管理员上密码:root

bin/mysqladmin -u root password 'root' 

授权远程访问

mysql>grant all privileges on *.* to root@'%' identified by 'root';
mysql>flush privileges;

进入客户端

  登录 
  mysql -u root -p

  输入密码

扩展

  mysql 下有好几个结尾为cnf的文件,它们的作用分别是。

a、my-small.cnf:是为了小型数据库而设计的。不应该把这个模型用于含有一些常用项目的数据库。

b、my-medium.cnf:是为中等规模的数据库而设计的。如果你正在企业中使用RHEL,可能会比这个操作系统的最小RAM需求(256MB)明显多得多的物理内存。由此可见,如果有那么多RAM内存可以使用,自然可以在同一台机器上运行其它服务。
c、my-large.cnf:是为专用于一个SQL数据库的计算机而设计的。由于它可以为该数据库使用多达512MB的内存,所以在这种类型的系统上将需要至少1GB的RAM,以便它能够同时处理操作系统与数据库应用程序。
d、my-huge.cnf:是为企业中的数据库而设计的。这样的数据库要求专用服务器和1GB或1GB以上的RAM。
这些选择高度依赖于内存的数量、计算机的运算速度、数据库的细节大小、访问数据库的用户数量以及在数据库中装入并访问数据的用户数量。随着数据库和用户的不断增加,数据库的性能可能会发生变化。

备注:这里我们根据实际情况,选择了"my-medium.cnf"进行配置。

 

删除空用户,增强安全
  目前为止我们都是以"root"的身份进行的,但是当我们切换至普通用户登录MySQL时,直接输入"mysql"就进去了,我们刚才不是设置密码了吗?怎么就失效了呢?说明有空用户存在。先用命令"exit"退出,在按照下面命令进行修正。

解决步骤如下:

以MySQL用户"root"用密码形式登录。

mysql -u root -p

删除空用户,强烈建议。

mysql>delete from mysql.user where user='';

刷新权限表,以便可以使更改立即生效。

mysql>flush privileges;

输入"exit",退出MySQL。

mysql>exit

再重新以"mysql"登录测试

mysql
发现以"mysql"登录已经失效,必须以"mysql –u root -p"才能登录。

 

时间: 2024-08-01 07:18:52

一步到位Linux中安装配置MySQL及补坑的相关文章

在阿里云的CentOS环境中安装配置MySQL的教程_Mysql

1 常规错误的yum安装方法: 在前文中记述了CentOS 6.5系统中通过yum方式快速地搭建了LNMP环境,那么是否也能在CentOS 7或CentOS 7.1系统中依葫芦画瓢安装MySql5.6.24呢?答案是否定的. [root@typecodes ~]# yum -y install mysql mysql-server mysql-devel ...................... ....省略部分安装过程.... ...................... Installe

在Linux中安装配置Postfix来搭建邮件发送服务

在创建网站应用时,在用户进行某些操作时需要发邮件给用户是一种必不可少的操作.云服务虽然是一个不错的选择.但如果体量太小,或是受到某些条件限制时,自建服务也许是一个更好的选择.下面尝试在 CentOS 7 中搭建发送邮件的功能. 安装 Postfix postfix是Wietse Venema在IBM的GPL协议之下开发的MTA(邮件传输代理)软件.postfix是Wietse Venema想要为使用最广泛的sendmail提供替代品的一个尝试.在Internet世界中,大部分的电子邮件都是通过s

linux中安装配置sphinx2步骤详解

# 安装sphinx 2.x  代码如下 复制代码 cd /home/addcn wget http://sphinxsearch.com/files/sphinx-2.1.1-beta.tar.gz tar xvf sphinx-2.1.1-beta.tar.gz cd sphinx-2.1.1-beta make clean ./configure –prefix=/usr/local/sphinx –with-mysql=/usr/local/mysql make && make i

图文详解Ubuntu下安装配置Mysql教程_Mysql

Ubuntu安装Mysq有l三种安装方式,下面就为大家一一讲解,具体内容如下 1. 从网上安装 sudo apt-get install mysql-server.装完已经自动配置好环境变量,可以直接使用mysql的命令. 注:建议将/etc/apt/source.list中的cn改成us,美国的服务器比中国的快很多. 2. 安装离线包,以mysql-5.0.45-linux-i686-icc-glibc23.tar.gz为例. 3. 二进制包安装:安装完成已经自动配置好环境变量,可以直接使用m

在 Linux 中安装 Darkstat:基于网页的流量分析器

Darkstat是一个简易的,基于网页的流量分析程序.它可以在主流的操作系统如Linux.Solaris.MAC.AIX上工作.它以守护进程的形式持续工作在后台,不断地嗅探网络数据,以简单易懂的形式展现在它的网页上.它可以为主机生成流量报告,识别特定的主机上哪些端口是打开的,它兼容IPv6.让我们看下如何在Linux中安装和配置它. 在Linux中安装配置Darkstat 在Fedora/CentOS/RHEL中安装Darkstat: 要在Fedora/RHEL和CentOS中安装,运行下面的命

我也很纳闷,网上linux下安装appache,mysql之类的软件,都有好长一段代码来配置修改文件

问题描述 我也很纳闷,网上linux下安装appache,mysql之类的软件,都有好长一段代码来配置修改文件该问题来自CSDNDocker技术交流群(303806405),由版主xinshubiao整理.

在CentOS6.4中安装配置LAMP环境的详细步骤

原文:在CentOS6.4中安装配置LAMP环境的详细步骤 本文详细介绍了CentOS6.4系统中安装LAMP服务并对其进行配置的过程,即安装Apache+PHP+Mysql,参照了网上大神的设置,其他Linux发行系统可以参考~ 在本文中部分命令操作需要root权限,输入'su -'命令后输入密码即可切换root身份. 一.修改设置对安装做准备 1. 防火墙设置 设置/etc/sysconfig/iptables文件允许80端口和3306端口.因为80端口是http协议所使用的端口,如果防火墙

Linux中安装Memcached服务

下载并安装Memcache服务器端 服务器端主要是安装memcache服务器端. 下载:http://www.danga.com/memcached/dist/memcached-1.2.2.tar.gz 另外,Memcache用到了libevent这个库用于Socket的处理,所以还需要安装libevent,libevent的最新版本是libevent-1.3.(如果你的系统已经安装了libevent,可以不用安装) 官网:http://www.monkey.org/~provos/libev

linux中安装Zend Optimizer与eAccelerator教程

eAccelerator与Zend Optimizer是一个加速软件了,我们可以利用它与php环境同步运行使用得php性能更好了,下面来一起看看linux中安装Zend Optimizer与eAccelerator教程 下载Zend Optimizer http://downloads.zend.com/optimizer/3.3.9/ZendOptimizer-3.3.9-linux-glibc23-i386.tar.gz tar -xzvf ZendOptimizer-3.3.9-linux