欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

centos下安装mysql5.6

程序员文章站 2022-05-27 09:35:41
...

centos下安装mysql5.6


MySQL是一个关系型数据库管理系统,由瑞典MySQL AB 公司开发,目前属于 Oracle 旗下产品。MySQL 是最流行的关系型数据库管理系统之一,在 WEB 应用方面,MySQL是最好的 RDBMS (Relational Database Management System,关系数据库管理系统) 应用软件之一。

1 查看是否安装mysql

安装mysql之前,需要查看是否安装了mysql,如果安装则进行卸载,命令:

rpm -qa | grep mysql

卸载命令:

rpm -e --nodeps mysql-*

查看是否安装mariadb数据库,如果存在,则卸载,命令:

rpm -qa | grep mariadb
rpm -e --nodeps mariadb-libs-5.5.35-3.el7.x86_64

2 下载与系统对应版本的mysql

结合命令cat /etc/system-releasegetconf LONG_BIT查看需要下载的mysql包,命令分别表示系统发行版本和位数。

下载地址:点击访问mysql5.6官方下载地址

本文以mysql-5.6.44-linux-glibc2.12-x86_64.tar.gz为例。

3 解压并安装

把下载的文件放到/opt/soft/下并进行解压,然后把解压后的文件重命名为mysql,移动到/usr/local下,命令:

cd /opt/soft
tar -zxvf mysql-5.6.44-linux-glibc2.12-x86_64.tar.gz
mv mysql-5.6.44-linux-glibc2.12-x86_64 mysql
mv mysql /usr/local/

创建mysql用户组及用户,命令:

groupadd mysql
useradd -r -g mysql mysql

复制配置文件并编辑,把mysql下的配置文件覆盖到/etc/my.cnf,并编辑/etc/my.cnf命令:

cp /usr/local/mysql/support-files/my-default.cnf /etc/my.cnf
vi my.cnf

配置内容如下,可根据需要增加其他配置

[mysqld] 

#设置3306端口 
port = 3306  

# 设置mysql的安装目录 根据实际目录进行配置
basedir=/usr/local/mysql 

# 设置mysql数据库的数据的存放目录 根据实际目录进行配置
datadir=/usr/local/mysql/data 

# 允许最大连接数 
max_connections=200 

# 服务端使用的字符集默认为8比特编码的latin1字符集 
character-set-server=utf8 

# 创建新表时将使用的默认存储引擎 
default-storage-engine=INNODB 

max_allowed_packet=16M

赋权并执行初始化数据库,命令:

chown -R mysql.mysql /usr/local/mysql
/usr/local/mysql/scripts/mysql_install_db --verbose --user=mysql --defaults-file=/etc/my.cnf --datadir=/usr/local/mysql/data --basedir=/usr/local/mysql

如果初始化数据库失败,提示:

FATAL ERROR: please install the following Perl modules before executing ./mysql_install_db:
Data::Dumper

需要安装使用yum -y install autoconf命令安装autoconf库,此包安装时会安装Data:Dumper模块。安装完成后再次执行命令:

/usr/local/mysql/scripts/mysql_install_db --verbose --user=mysql --defaults-file=/etc/my.cnf --datadir=/usr/local/mysql/data --basedir=/usr/local/mysql

测试启动:

/usr/local/mysql/bin/mysqld_safe --defaults-file=/etc/my.cnf --socket=/tmp/mysql.sock --user=mysql &

查看端口是否启动:

lsof -i:3306

4 注册服务

设置开机启动:
复制启动脚本到资源目录

cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld
cp /usr/local/mysql/support-files/mysql.server /etc/rc.d/init.d/mysql

增加 mysqld 服务控制脚本执行权限

chmod +x /etc/rc.d/init.d/mysqld

将 mysqld 服务加入到系统服务

chkconfig --add mysqld

5 配置环境变量

/usr/local/mysql/bin加入到环境变量中,使用source /etc/profile使其生效。

6 停用启用

启动 service mysqld start
停用 service mysqld stop
查看状态 service mysql status
登陆mysql mysql -uroot -p

更改密码&开启远程访问

更改密码
在linux上登陆mysql,执行更改命令set password for [email protected] = password('123');,123是需要更改的新密码。命令如下:
登陆mysql,命令:mysql -uroot -p,第一次密码为空,直接回车;
更改mysql密码,命令: set password for [email protected] = password('123456');;
退出mysql,重新登陆,命令:exit;

开启远程访问一
在linux上登陆mysql,登陆成功后,执行命令:

use mysql;
update user set host = '%' where user = 'root' and host ='localhost'; 
flush privileges;

开放防火墙3306端口。
需要注意的是,不建议对root账户进行开启远程访问权限

开启远程访问二
常用解决方案:
创建用户并赋予对应数据库权限,对创建用户开启远程访问权限:
登录MySQL,use mysql库,使用grant all privileges on来更改用户对应某些库的远程权限:

use mysql;
grant all privileges on 库名.表名 to '用户名'@'IP地址' identified by '密码' with grant option;
flush privileges;
参数 参数说明 示例
库名 要远程访问的数据库名称,所有的数据库使用“*” test
表名 要远程访问的数据库下的表的名称,所有的表使用“*” student
用户名 要赋给远程访问权限的用户名称 root
IP地址 可以远程访问的电脑的IP地址,所有的地址使用“%” %
密码 要赋给远程访问权限的用户对应使用的密码 123456

扩展:
grant 权限1,权限2,…权限n on 数据库名称.表名称 to 用户名@用户地址 identified by ‘连接口令’;
权限1,权限2,…权限n代表select,insert,update,delete,create,drop,index,alter,grant,references,reload,shutdown,process,file等14个权限。
当权限1,权限2,…权限n被all privileges或者all代替,表示赋予用户全部权限。
当数据库名称.表名称被*.*代替,表示赋予用户操作服务器上所有数据库所有表的权限。
用户地址可以是localhost,也可以是ip地址、机器名字、域名。也可以用’%'表示从任何地址连接。
‘连接口令’不能为空,否则创建失败