进入mysql官网,MySQL :: Download MySQL Community Server,下载对应版本的安装文件,windows下exe\msi及linux下rpm的直接安装即可不在此讲解,主要为tar,gz\tar.xz等包部署操作方式,本次讲解是在kylin环境中,linux环境操作基本上一致。
如果是远程安装,需要将安装文件上传服务器,可使用put、scp等命令,如果链接网络可以直接在服务器上下载。
注意:命令均使用root权限进行操作,如果用普通用户操作,需要在命令前增加sudo ,使用管理员权限运行
注意:实现轻判断是否已安装mysql或者mariadb服务,如果存在请删除
# 查看
rpm -qa | grep mysql
rpm -qa | grep mariadb
# 卸载
yum remove mysql*
yum remove mariadb*
1、首先解压缩部署文件
tar -zxvf 你对应版本的MySQL压缩包文件名.tar.gz
2、为了方便接下来的操作,将解压之后的文件夹改一个简短好记的名称
mv 旧的文件夹名 mysql
3、新的文件夹名字是mysql,你也可以在后面加上对应的版本号,不必写太长。这个文件夹名后面需要用来填写一些相关信息运行下面的命令将该文件夹移动到/usr/local/文件夹下
mv mysql /usr/local/
4、改变操作目录到/usr/local/下
cd /usr/local/
5、在该目录下我们创建一个空的mysql_data文件夹用来存放MySQL的数据库,这个路径后面也需要用到,创建该文件夹运行下面命令即可
mkdir mysql_data
PS:建议将mysql、mysql_data所属用户和组修改为mysql用户,没有的话,自行创建mysql用户和mysql组
useradd mysql #创建用户
groupadd mysql #创建用户组
chown mysql:mysql -R mysql #mysql文件夹及子文件修改mysql用户和mysql用户组
chown mysql:mysql -R mysql_data #mysql_data文件夹及子文件修改mysql用户和mysql用户组
6、在准备好mysql和mysql_data文件夹之后,我们还需要配置一个my.cnf文件放在/etc/目录下可以先打开/etc/目录
cd /etc/
该目录下一开始是没有my.cnf文件的,需要我们手动创建,使用管理员权限创建一个空的my.cnf文件,并通过vi命令进行编辑
touch my.cnf
vi my.cnf
my.cnf文件内容如下,注释可删除
版本一
[client]
port=3306 #服务器的通信端口
socket=/tmp/mysql.sock #sock文件这个会自动创建,不用大家手动创建,但是需要指定目录
#这里可以在/tmp/目录下再创建一个mysql文件夹将sock文件保存在里面,那这部分可以改成
#socket=/tmp/mysql/mysql.sock
[mysqld]
port=3306
user=mysql #下文将会有说明
socket=/tmp/mysql.sock #记得和上面对应
basedir=/usr/local/mysql #之前已经准备好的mysql文件,解压改名之后得到的文件夹
datadir=/usr/local/mysql_data #这是自己创建的空的mysql_data文件夹版本二
[mysqld]
port=3306 # 设置MySQL服务监听端口,默认3306
bind-address=0.0.0.0 # 设置MySQL服务器绑定的IP地址,可以设置为自己本机IP
user=mysql # 设置MySQL数据库用户
basedir=/usr/local/mysql # 数据库文件路径
datadir=/data/mysql # 数据库数据目录,存储数据库文件的路径
socket=/tmp/mysql.sock # 设置MySQL服务器使用的套接字文件路径
pid-file=/data/mysql/mysql.pid # 设置指定存放进程ID的文件
character_set_server=utf8mb4 # 设置每个连接的默认字符集
symbolic-links=0
explicit_defaults_for_timestamp=true # mysql-5.6.6丢弃了这个系统变量,版本高于5.6.6的可加上
注意事项:
mysql5 默认加密方式是 my_native_password、mysql8 默认加密方式是 caching_sha2_password,如果不打算使用caching_sha2_password加密方式,my.cnf增加下面内容设置默认加密方式my_native_password
default_authentication_plugin=mysql_native_password
如果已经初始化完成,则可以增加下面内容,意思是跳过密码登录,就是登录不验证密码,登录后修改user表更改加密方式修改密码
skip-grant-tables
修改加密方式或密码命令如下
update user set plugin='mysql_native_password';
# 修改所有用户加密方式
ALTER USER root@localhost IDENTIFIED WITH mysql_native_password BY '111111';
#修改指定用户加密方式及密码
7、接下来创建Linux系统中的用户组与用户,用来实现访问控制
groupadd mysql #创建mysql的用户组
useradd -g mysql mysql #在用户组下创建用户,注意这里应该是和my.cnf中的user对应
8、运行以下命令进行初始化操作
--basedir 为mysql解压目录,–datadir 为mysql数据存放目录,就是在/etc/my.cnf中配置的路径
方案一
/usr/local/mysql/bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql/ --datadir=/usr/local/mysql_data/
#大家注意文件夹路径的对应关系即,这些文件都是我们前文中准备好的
方案二
/usr/local/mysql/bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql/ --datadir=/usr/local/mysql_data/ --defaults-file=/etc/my.cnf
9、启用mysql.server服务了,首先配置服务,再运行服务
cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql
#配置服务到系统中,文件位置是对应的
/usr/local/mysql/support-files/mysql.server start
#sudo即管理员权限启动服务,否则可能又是访问被拒绝
#可以检查一下服务有没有成功,运行命令
service mysql status
#检查mysql服务的启动状态
10、启动成功,基本上就没问题了,可以使用如下命令登录数据库,修改密码等正常使用就可以了,如果有其他错误需要针对性进行处理,例如防火墙开放端口,增加mysql用户远程访问权限,修改用户密码加密方式等
PS:如果想直接使用mysql -u root -p 直接登录,则需要先把mysql的路径映射链接到/usr/bin目录下
ln -s /usr/local/mysql/bin/mysql /usr/bin
mysql -u root -p