daD
Linux centos7环境下MySQL安装教程
Linux centos7环境下安装MySQL步骤的详细介绍
安装MySQL
mysql 有两个跟windows不同的地方
1)、my.ini 保存到/etc/my.ini
2)、用户权限,单独用户执行
一、查找以前是否安装有mysql,使用下面命令:
rpm –qa | grep -i mysql
如果显示有如下包则说明已安装mysql
mysql-4.1.12-3.RHEL4.1
mysqlclient10-3.23.58-4.RHEL4.1
二、下载mysql解压包
mysql-5.7.17-linux-glibc2.5-x86_64.tar (去http://mirrors.sohu.com网站上下载)
网址:http://mirrors.sohu.com/mysql/MySQL-5.7/

也可以在Linux操作系统底下进行下载, 输入如下命令
wget http://mirrors.sohu.com/mysql/MySQL-5.7/mysql-5.7.17-linux-glibc2.5-x86_64.tar.gz
创建目录software用于存放我们待会要下载的mysql包,先去到该目录 输入命令:cd /software
下载完成后,你会在software目录下看到多出一份mysql安装包文件

三、建立用户,以及mysql的目录
1、groupadd mysql #建立一个mysql的组
2、useradd -r -g mysqlmysql #建立mysql用户,并且把用户放到mysql组
3、passwd mysql #给mysql用户设置一个密码

四、解压mysql安装包
1、先把tar.gz包移动到/usr/local 目录下, 输入命令
mv /software/MySQL/mysql-5.7.17-linux-glibc2.5-x86_64.tar.gz/usr/local

2、解压tar.gz包
先去到/usr/local 目录下, 输入命令cd /usr/local
解压命令 tarzxvfmysql-5.7.17-linux-glibc2.5-x86_64.tar.gz

输入查看目录命令 ll
会发现多出目录 mysql-5.7.17-linux-glibc2.5-x86_64

注意:没有data 目录,my.ini文件 在support-files 目录下
3、改一下目录名字为 /usr/local/mysql
(这是linux下mysql的默认安装安装目录)
把解压出来的文件改下名字,改为mysql
输入命令: mv mysql-5.7.17-linux-glibc2.5-x86_64 mysql

五、配置相关的启动配置文件
首先要去到support-files/文件目录下
输入命令: cd support-files/

1、复制my.cnf 到 /etc/my.cnf (mysql启动时自动读取)
输入命令 cpmy-default.cnf /etc/my.cnf


2、解决乱码问题
输入命令:vi /etc/my.cnf (进入可编辑状态)
更改:
[mysql]
default-character-set=utf8(表示解决客户端乱码问题)
[mysqld]
default-storage-engine=INNODB
character_set_server=utf8(表示解决服务端乱码问题)

3、复制mysql.server 到/etc/init.d/ 目录下 【目的想实现mysqld -install这样开机自动执行效果】
输入命令 cp mysql.server /etc/init.d/mysql (mysql是服务名)
注意: /etc/init.d/ 目录,等效于注册表HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\services记录有那些服务

4、修改/etc/init.d/mysql 参数
输入命令 vi /etc/init.d/mysql
给与两个目录位置
basedir=/usr/local/mysql
datadir=/usr/local/mysql/data

5、给目录/usr/local/mysql 更改拥有者
输入命令 chown -R mysql:mysql /usr/local/mysql/

六、初始化mysql的数据库
1、初始化mysql
mysql_install_db (老版本的做法)
新版本: 初始化
输入命令 ./mysqld --initialize --user=mysql--basedir=/usr/local/mysql --datadir=/usr/local/mysql/data
生成出一个data目录,代表数据库已经初始化成功
并且mysql的root用户生成一个临时密码:(记录下临时密码XXX)


2、给数据库加密
输入命令 ./mysql_ssl_rsa_setup --datadir=/usr/local/mysql/data

3、启动mysql
输入命令 ./mysqld_safe --user=mysql & (&符表示提交到后台运行mysql服务)

七、进入客户端
1、登录
输入命令 ./mysql -uroot -p
然后再输入你的临时密码

2、修改密码
输入命令 set password=password(‘xxxx')

八、window远程访问Linux虚拟机的mysql
先来看看数据库结构

1、关闭防火墙 (或者给防火墙开放端口),这样window才能连接上
输入命令 systemctl stop firewalld.service

2、给Windows授权
输入命令 mysql>grant all privileges on *.* toroot@'%' identified by '123456';

mysql>use mysql;
mysql>select host,user from user;
【多出一条远程登录用户记录】

mysql>flush privileges;
3、远程链接数据库,或者重启(init 6)。
输入命令:mysql –hIP地址 -uroot -p123456

九、设置开机自动启动mysql服务
1、添加mysql服务
输入命令 chkconfig --add mysql 【mysqld -install】

2、设置mysql服务为自动
输入命令 chkconfig mysql on

3、重启检查
init 6 ps –ef | grep mysql
十、设置path
输入命令 vi /etc/profile
输入命令 exportPATH=$JAVA_HOME/bin:/usr/local/mysql/bin:$PATH

配置好mysql环境变量后,我们往后登录mysql就不用再去到/usr/local/mysql/bin目录才能登录了,现在可以在任意目录下登录mysql了

到了这里我们就成功在Linux centos7环境下安装MySQL了。
随机推荐
- 向div添加圆角边框
初级参数:border-radius: 4px;中级参数:border-radius: 4px 6px 6px 4px;终极参数:border-radius: 5px 5px 3px 2px / 5p ...
- Mac 安装tensorflow
一. 安装 TensorFlow谷歌的官网和开源项目都有介绍各个系统的安装和使用(官网:https://www.tensorflow.org/install git: https://github.c ...
- kd树 C++实现
参考:百科kd-tree /* * kdtree.h * * Created on: Mar 3, 2017 * Author: wxquare */ #ifndef KDTREE_H_ #defin ...
- nodejs学习笔记三(用户注册、登录)
1.定接口 /user 接口 输入 act=reg&user=aaa&pass=123456 输出 {& ...
- i.mx6 Android5.1.1 初始化流程之init.rc解析(未完成)
接上一篇:i.mx6 Android5.1.1 初始化流程之init进程 参考资料:http://blog.csdn.net/mr_raptor/article/category/799879 这个博 ...
- 整理一些前端开发比较好的node包
1.一个base64转换的包 !https://www.npmjs.com/package/js-base64 2 js 压缩 !https://www.npmjs.com/package/uglif ...
- php常用的时间函数
测试环境:php5.3.29 unix时间戳(从Unix 纪元(January 1 1970 00:00:00 GMT)到给定时间的秒数.).以下简称时间戳. 设置默认时区 date_default_ ...
- HTML基础-常用标签及图片
标记/标签{元素} 双标签: <标签>内容</标签> <html></html> 网页 页面的根元素 <head></head& ...
- SpringBoot 整合swagger
springBoot 整合swagger 1.pom.xml 配置 <dependency> <groupId>io.springfox</groupId> < ...
- JAVA基础之——方法直接用类名.的理解
前言 在java中经常遇到使用classname.method()的方式调用方法,哪些场景需要用到呢,如下: 某些操作不依赖具体实例 某个方法是用频率较高,或者方法本身通用性较强,无需初始化类成员变量 ...