mysql数据库的安装一般就三种环境,Windows、Mac、Linux,在这里Windows和Mac就不多说了,直接下载安装包,双击打开安装基本很简单;在这里主要说一下关于mysql在Linux环境下的安装
主要介绍这么几点内容:
- 基本的安装步骤
- 安装过程中的注意事项
- 推荐安装位置
- 用户及操作权限设置
下载mysql
在官网:http://dev.mysql.com/downloads/mysql/ 中,根据自己的需要选择合适版本的mysql下载:
在这里说一下安装路径问题:
一般情况下将安装包下载到一个临时目录下,解压安装包至/usr/local/mysql,没有mysql的话就创建一个即可;其他基本默认即可,但这里仅建议自己装着玩的用户这么操作
推荐目录(非练习系统,数据量大):
安装文件下载目录:/data/software
Mysql目录安装位置:/usr/local/mysql
数据库保存位置:/data/mysql
日志保存位置:/data/log/mysql
说明一下:/usr为系统盘,也就是说和Linux系统一个磁盘上;/data为运维同事给分配的专门数据盘,和系统分开的专门存储数据的一个磁盘;
mysql应用可以直接安装在系统盘上,所需空间有限,不会越来越大;/data目录采用专门磁盘,用于存储专门的数据库数据、日志等信息,因为他会随着业务的发展越来越大,在单独的盘上存储,更方便扩容,又可以避免存在在系统盘上因为数据的增多导致系统盘空间满,影响系统的启动和运行;下面我们就按照以上推荐目录进行操作安装:
mkdir命令创建好所需目录,这里就不多做赘述,不会的自行百度
将下载好的安装文件放到服务器上,解压安装包
执行如下命名:
#mkdir /data/software
#cd /data/software
--下载安装包
--建议:在windows上使用迅雷下载,速度很快(我的是1M/s),然后用工具(Xftp)上传到 /data/software目录下;
#wget https://cdn.mysql.com//Downloads/MySQL-8.0/mysql-8.0.19-linux-glibc2.12-x86_64.tar.xz
解压压缩包到目标位置
#cd /data/software
--解压压缩包
#xz -d mysql-8.0.19-linux-glibc2.12-x86_64.tar.xz
注:这里是.tar.xz而不是.tar.gz;解压tar.xz文件:先 xz -d xxx.tar.xz 将 xxx.tar.xz解压成 xxx.tar 然后,再用 tar xvf xxx.tar来解包。
#tar -xvf mysql-8.0.19-linux-glibc2.12-x86_64.tar
--移动并修改文件名
#mv /data/softwaremysql-8.0.19-linux-glibc2.12-x86_64 /usr/local/mysql
新建mysql用户、组及目录
# groupadd mysql ---新建一个mysql组
# useradd -r -s /sbin/nologin -g mysql mysql -d /usr/local/mysql ---新建mysql用户禁止登录shell
-r : 创建系统账户
-s : 指定用户登入后所使用的shell。默认值为/bin/bash。如果不想让用户登录系统可以用 -s /sbin/nologin.此用户就不可以登录系统。
-g:指定用户所属的群组。值可以使组名也可以是GID。用户组必须已经存在的,期默认值为100,即users。
-d:指定用户登入时的主目录,替换系统默认值/home/<用户名>
改变目录属有者
#cd /usr/local/mysql
#pwd
#chown -R mysql .
#chgrp -R mysql .
#chown -R mysql:mysql /data/mysql
#chown -R mysql:mysql /data/log
配置参数
#vim /etc/my.cnf
然后 按 i 进入编辑模式,把下面内容复制进去
[mysqld] port=3306 user=mysql datadir=/data/mysql basedir=/usr/local/mysql
#log-error=/data/log/mysql.err
#此处如果配置了log-error,那么在接下来的操作中,执行命令如果没有打印出日志可以直接到这来查看
#并且这个地方需要特别注意的就是个别版本的mysql在这个地方有个bug!务必注意!!!
#个别版本在配置了该参数以后,数据库启动会报错,提示需要手动创建该日志目录及日志文件,且分配好文件用户权限,mysql不能自动创建该日志文件
pid-file=/usr/local/mysql/mysql.pid
初始化mysql
#cd /usr/local/mysql/bin/
#./mysqld --defaults-file=/etc/my.cnf --basedir=/usr/local/mysql/ --datadir=/data/mysql/ --user=mysql --initialize
查看初始密码,复制出来(注:此处如果没有在my.cnf中配置log-error的话,执行上一条./mysqld语句会直接打印出来日志及初始密码,务必保存好初始密码)
#vim
/data/log/mysql.err
启动mysql,并更改root 密码
#cd /usr/local/mysql/bin/
#./mysqld start
未启动成功报错:
#./mysqld
直接用./mysqld启动则启动成功
查看是否启动
#ps -ef|grep mysql
登录并修改密码
mysql -hlocalhost -uroot -p
输入刚刚初始化时生成的密码
输入基本查询数据库命令(show databases;)提示需要更改密码;第一次登录需要重新修改密码才可以使用
修改密码:
mysql> ALTER user 'root'@'localhost' IDENTIFIED BY '12345678';
刷新权限,使其及时生效
mysql> flush privileges;
初始化完成
以上操作中还有一个地方需要在此补充:
问题:我们在执行mysqld和mysql命令时只能到mysql的安装目录下的bin里面执行,在其他目录中执行报找不到命令
原因:mysqld和mysql为新安装数据库的命令,存在于mysql安装目录下的bin目录里;在系统其他路径下是找不到的,故需要配置环境变量
解决方案:
# vim /etc/profile
添加:
export PATH=/usr/local/mysql/bin:$PATH
source /etc/profile #使添加变量生效
******将mysql加入到可控制启动的服务的文件夹内,并命名mysql,即service可控制的服务名,至此可用service mysql start控制启动mysql
/etc/init.d 是/etc/rc.d/init.d的链接,在/etc/init.d添加一个文件会同步在/etc/rc.d/init.d下添加一个相同文件
# cd /usr/local/mysql/
# cp support-files/mysql.server /etc/init.d/mysql
现在可以使用下面的命令启动mysql
service mysql start
停止mysql服务
service mysql stop
重启mysql服务
service mysql restart
下面两种命令作用相同
systemctl [stop|start|restart] 服务名
service 服务名 [stop|start|restart]
Linux的mysql数据库安装在此已编写完成,此时回想起自己在平时工作用遇到的几个问题点,记录在此,在接下来的文章中会陆续总结整理:
- my.cnf配置文件详解
- mysql的基础常用命令总结
- mysql数据库忘记密码
- mysql关于只能本地登录,不能远程登录的设置
- mysql的备份
- mysql间的实时同步