centOS安装Mysql指南

说明:使用操作系统centOS6.4 32位系统;mysql:mysql-5.7.10-linux-glibc2.5-i686.tar.gz;

一、准备

下载mysql

wget http://mirrors.sohu.com/mysql/mysql:mysql-5.7.10-linux-glibc2.5-i686.tar.gz

注:所有shell命令都以root用户执行。随着mysql版本的更新,新版本的安装方式会有所更改,可以参考mysql压缩包中的INSTALL-BINARY文件。

此处我下载的是MySQL-5.7下的mysql-5.7.10-linux-glibc2.5-x86_64.tar.gz

二、解压缩文件并移动到指定目录 

在home文件夹下创建一个mysql文件夹,作为存放mysql文件的目录

[root@localhost ~]# cd /home

[root@localhost ~]# mkdir mysql

回到保存下载压缩文件的目录解压压缩文件

[root@localhost ~]# cd /home/user/Downloads

[root@localhost ~]# tar -zxvf mysql-5.7.10-linux-glibc2.5-x86_64.tar.gz

移动文件到指定目录

[root@localhost ~]# mv mysql-5.7.10-linux-glibc2.5-x86_64  /home/mysql/mysql-5.7.10

三、安装运行mysql所需的包 

[root@localhost ~]# yum search libaio

[root@localhost ~]# yum install libaio

四、安装及配置mysql

参照mysql文件中的INSTALL-BINARY;

[root@localhost ~]# groupadd mysql #添加一个mysql用户组

[root@localhost ~]# useradd -r -g mysql -s /bin/false mysql #设置-s /bin/false表示mysql不能作为登入用户

[root@localhost ~]# cd /usr/local [root@localhost ~]# ln -s /home/mysql/mysql-5.7.10 mysql#在/usr/local/目录下创建一个mysql链接

[root@localhost ~]# cd mysql [root@localhost ~]# mkdir data #作为存放数据的目录

[root@localhost ~]# chmod 770 data #修改data目录的进入权限

[root@localhost ~]# chown -R mysql:mysql . #修改当前文件夹的用户权限和组权限

[root@localhost ~]# bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data  # MySQL 5.7.10初始化设置

执行该命令后,注意最后一行的[Note]信息

[Note] A temporary password is generated for root@localhost: )9AsdF(+86h49 生成的初始密码在首次以root用户登入时使用;

[root@localhost ~]# bin/mysql_ssl_rsa_setup --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data   # MySQL 5.7.10安全连接设置

[root@localhost ~]# chown -R root . 
[root@localhost ~]# chown -R mysql data  
[root@localhost ~]# cd /var/log 
[root@localhost ~]# mkdir mysql  #作为存放数据库运行日志的文件夹

[root@localhost ~]# cd /usr/local/mysql/

[root@localhost ~]# bin/mysqld_safe --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data & #此命令在后台运行

将mysql加入到可控制启动服务的文件夹内,并命名mysql,即service可控制的服务名,届时可用service mysql start|stop控制启动及关闭mysql

[root@localhost ~]# cp support-files/mysql.server /etc/init.d/mysql

至此可用service mysql start来启动mysql数据库。  
配置开机启动mysql服务

[root@localhost ~]# chkconfig --add mysql 
[root@localhost ~]# chkconfig --level 2345 mysql on

五、首次登入mysql 
[root@localhost ~]# mysql -u root -p 
Enter password:输入之前生成的临时密码 mysql> SET PASSWORD = PASSWORD('123456');  #注意最后的分号;

六、其他配置 

a) 开启防火墙mysql 3306端口的外部访问 CentOS升级到7之后,使用firewalld代替了原来的iptables。

下面记录如何使用firewalld开放Linux端口

--zone      : 作用域,网络区域定义了网络连接的可信等级。这是一个一对多的关系,这意味着一次连接可以仅仅是一个区域的一部分,而一个区域可以用于很多连接

--add-port  : 添加端口与通信协议,格式为:端口/通讯协议,协议是tcp 或 udp

--permanent : 永久生效,没有此参数系统重启后端口访问失效

[root@localhost ~]#  firewall-cmd --zone=public --add-port=3306/tcp --permanent

[root@localhost ~]#  firewall-cmd --reload  #重启防火墙

b) 五个mysql的GRANT例子 (mysql的用户,非Centos用户)

例一、允许使用用户名root密码123456从任何主机连接到mysql服务器 ,该创建的root账号只是从外部访问的账号,与内部linux访问该mysql时所用root不同,内部linux访问该mysql的root账号也不是linux的系统root账号

mysql>GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '123456' WITH GRANT OPTION; 
 
例二、给来自192.168.155.1的用户user1分配可对数据库dbname的tablename表进行SELECT,INSERT,UPDATE,DELETE,CREATE,DROP等操作的权限,并设定密码为123456。 对表操作权限还有好多如ALTER等

mysql>GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DROP ON dbname.tablename TO 'user1'@'192.168.155.1' IDENTIFIED BY '123456';

mysql>GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DROP ON dbname.tablename TO 'user1'@'192.168.155.1' IDENTIFIED BY '123456';

例三、给来自192.168.155.1的用户user2分配可对数据库dbname所有表进行所有操作的权限,并设定口令为123456。

mysql>GRANT ALL PRIVILEGES ON dbname.* TO 'user2'@'192.168.155.1' IDENTIFIED BY '123456';

例四、给来自192.168.155.1的用户user3分配可对所有数据库的所有表进行所有操作的权限,并设定口令为123456。

mysql>GRANT ALL PRIVILEGES ON *.* TO 'user3'@'192.168.155.1' IDENTIFIED BY '123456';

例一、给本机用户user4分配可对所有数据库的所有表进行所有操作的权限,并设定口令为123456。

mysql>GRANT ALL PRIVILEGES ON *.* TO 'user4'@'localhost' IDENTIFIED BY '123456';

例五、刷新权限 ;

mysql>FLUSH PRIVILEGES;

c)   参考:

1、mysql安装文件中的INSTALL-BINARY文件

2、http://www.cnblogs.com/dreamhome/p/4716425.html;

3、linux配置防火墙打开3306端口

4、CentOS7 Firewall防火墙详解

我也是初学mysql,才疏学浅,肯定有说得不好的地方,希望大家多多指点,我会及时改正,但请千万不要恶语相加啊!谢谢。

如果喜欢本文,请在后面留个言哈。

最新文章

  1. [译]Writing Custom Middleware in ASP.NET Core 1.0
  2. C# 关键字extern用法
  3. [转]Mybatis3.x与Spring4.x整合
  4. DIV+CSS颜色边框背景等样式
  5. redis服务启动关闭脚本
  6. linux安装软件命令
  7. linux,安装软件报错cannot create regular file '/usr/local/man/man1': No such file or directory
  8. poj3301 三分
  9. 如何从uiview里面,获取其上层的uiviewcontroller
  10. Linux 文件系统同步
  11. css案例学习之父子块的margin
  12. java的访问控制(包、访问修饰符、修饰符)
  13. iOS 输入时键盘处理问题
  14. python解释执行原理(转载)
  15. Java JWT: JSON Web Token
  16. 更换Homebrew为中科大源
  17. Razor - 标记简述
  18. sql中Union和union all的使用
  19. RabbitMQ使用笔记
  20. for 续5

热门文章

  1. JSP数据交互习题错误总结
  2. CCF真题之窗口
  3. Oracle数据库归档模式的切换及其相关操作详解
  4. 类名.class, class.forName(), getClass()区别
  5. PAT乙级 1015. 德才论 (25)
  6. 导出excel部分代码
  7. Jar mismatch! Fix your dependencies
  8. C语言初学者代码中的常见错误与瑕疵(4)
  9. DOM4J解析xml案例
  10. fix org.openqa.selenium.NoSuchWindowException when find element on ie11.