[后台开发系列之三]存储环境-Mysql数据库安装与配置(二)

之前有一篇也同样是安装MYSQL的教程,使用到了yum安装,但不是每台服务器都有yum的,而且也不是个操作服务器的人都有root权限的,以不变应万变,这次我们来使用安装包,全程手工安装mysql,确保每个环节都在操作者的掌控之中

此次篇幅,大部分内容来源于以下作者,感谢他们的贡献,侵删
Linux下安装MySQL数据库之压缩包方式安装
报错:1130-host ... is not allowed to connect to this MySql server

检查是否已安装MYSQL

使用以下命令查看当前安装mysql情况,查找以前是否装有mysql
rpm -qa|grep -i mysql
如果没找到,可以尝试使用
find / -name mysqlwhereis mysql
然后rm -rf,删掉全部与mysql相关的文件

例如
rm -rf /var/lib/mysql
rm -rf /var/lib/mysql/mysql
rm -rf /run/lock/subsys/mysql
rm -rf /usr/lib64/mysql
rm -rf /usr/local/mysql
rm -rf /usr/local/mysql/bin/mysql
rm -rf /usr/local/mysql/data/mysql
rm -rf /usr/local/mysql/include/mysql
rm -rf /usr/local/bin/mysql
rm -rf /usr/share/mysql
rm -rf /usr/local/bin/mysql

---------------------------------------------------- 清除完毕后,我们开始重装 ----------------------------------------------------

一、下载MySQL压缩包

MYSQL官网
由于我不太清楚资源包到底是哪一个,所以为了方便,就直接用现成的可下载的链接来下载资源包,习惯上,我会在服务器上有一个专门的用于下载软件的文件夹,在该文件夹中执行以下命令
wget http://dev.MySQL.com/get/Downloads/MySQL-5.7/mysql-5.7.11-Linux-glibc2.5-x86_64.tar.gz

二、解压、重命名、移动

解压后重命名为mysql,并把mysql移动到/usr/local下

  • 解压
    tar -xvf mysql-5.7.11-Linux-glibc2.5-x86_64.tar.gz
  • 重命名(MV命令本是移动命令,在同目录下移动,就相当于重命名)
    mv mysql-5.7.11-Linux-glibc2.5-x86_64 mysql
  • 移动到其他目录
    mv mysql /usr/local

三、创建mysql用户组及其用户

创建专用用户,可以大大提高数据库安全性,采用有限权限用户操作数据库,可以防止数据库被删除、泄漏等。但是这一步不是必须的,对于生产环境来说,是必要步骤,但是对于自用或者练手来说,使用root权限用户会比较方便,可以省去很多麻烦。

groupadd mysql//创建新的用户组,名为mysql
useradd -r -g mysql mysql//useradd -r参数表示mysql用户是系统用户,不可用于登陆系统;-g表示把mysql用户添加到mysql用户组中

四、创建目录

命令行切换当前目录到/usr/local/mysql

  • data
    mkdir /usr/local/mysql/data
  • tmp
    mkdir /usr/local/mysql/tmp
  • log
    mkdir /usr/local/mysql/log
  • pid
    mkdir /usr/local/mysql/pid

五、初始化MySQL配置表

此时 /usr/local/mysql目录下有这些内容


初始化mysql,需要有配置文件,很多CentOS都默认存在/etc/my.cnf这个文件,这个是mysql的默认配置文件,如果没有这个文件,可以使用下面的命令,在安装目录下有一份可以使用的默认配置,将其拷贝到目标目录
cp support-files/my-default.cnf /etc/my.cnf

  • 编辑 my.cnf 文件,配置路径
# For advice on how to change settings please see
# http://dev.mysql.com/doc/refman/5.7/en/server-configuration-defaults.html
# *** DO NOT EDIT THIS FILE. It's a template which will be copied to the
# *** default location during install, and will be replaced if you
# *** upgrade to a newer version of MySQL.

# Remove leading # and set to the amount of RAM for the most important data
# cache in MySQL. Start at 70% of total RAM for dedicated server, else 10%.
# innodb_buffer_pool_size = 128M

# Remove leading # to turn on a very important data integrity option: logging
# changes to the binary log between backups.
# log_bin

# These are commonly set, remove the # and set as required.
# basedir = .....
# datadir = .....
# port = .....
# server_id = .....
# socket = .....

# Remove leading # to set options mainly useful for reporting servers.
# The server defaults are faster for transactions and fast SELECTs.
# Adjust sizes as needed, experiment to find the optimal values.
# join_buffer_size = 128M
# sort_buffer_size = 2M
# read_rnd_buffer_size = 2M 

[client]
#客户端连接记录文件
socket = /usr/local/mysql/tmp/mysql.sock 
 
[mysqld]
#安装目录
basedir = /usr/local/mysql
#数据存储目录
datadir = /usr/local/mysql/data
#数据库访问端口
port = 3306
#数据库访问记录文件
socket = /usr/local/mysql/tmp/mysql.sock
#数据库数据模式,将来可再修改
sql_mode=NO_ZERO_DATE,NO_ZERO_IN_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES 

[mysqld_safe]
#mysql运行日志
log-error=/usr/local/mysql/log/mysqld.log
#mysql进程id
pid-file=/usr/local/mysql/pid/mysqld.pid

配置好配置文件后,初始化mysql,在/usr/local/mysql目录下运行

bin/mysqld --initialize --user=root --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data
#--user 启动mysql的用户;--basedir mysql安装目录;--datadir mysql数据仓库目录

参数--user=root是指定运行mysql的用户权限,如果上述步骤中,有为mysql创建单独的用户,则此处写mysql,如果没有,则写root,意思是使用root用户来运行mysql。初始化之后,会在最后一行看到root账号的初始密码,或者到/var/log/mysqld.log中也能找到
此时,有可能报 bin/mysqld: error while loading shared libraries: libaio.so.1: cannot open shared object file: No such file or directory错误,需要安装libaio,yum install -y libaio

  • 把mysql目录下除了data外的改为root所有,data为mysql用户所有,同样,这一步按需设置
chgrp -R mysql .
chown -R root .
chown -R mysql data

六、mysqld服务加入开机自启动项

把mysql下的support-files/mysql.server服务脚本放到系统服务,并设置运行权限,这样就可以使用service mysql start启动服务

cp support-files/mysql.server /etc/init.d/mysqld
chmod +x /etc/init.d/mysqld

查看是否添加成功
chkconfig --list mysql

七、建立软连接

ln -s /usr/local/mysql/bin/mysql  /usr/local/bin
ln -s /usr/local/mysql/bin/mysqladmin  /usr/local/bin
ln -s /usr/local/mysql/bin/mysqld_safe  /usr/local/bin

执行mysql命令时,则不需要到/usr/local/mysql/bin/目录下执行mysql。直接在任何路径下输入mysql,会执行/usr/local/bin下的mysql

八、修改密码

  • 启动服务
    service mysqld start
  • 登陆mysql
    mysql -u root -p
    输入默认密码登录
  • 修改密码
    成功登陆到数据库后,用alert修改root密码为,abcd;
alter user root@localhost identified by 'abcd';

九、远程访问

执行以上步骤后,mysql已经安装完成,而且正常启动,但是外网还是无法直接访问,只能本地访问,此时,需要修改数据库访问权限,才能访问

  • 改表法。
    可能是你的帐号不允许从远程登陆,只能在localhost。这个时候只要在localhost的那台电脑,登入mysql后,更改 "mysql" 数据库里的 "user" 表里的 "host" 项,从"localhost"改成"%"
mysql>use mysql;
mysql>update user set host = '%' where user = 'root';
  • 授权法。
    改表法,是不区分任务访问用户,直接开发让任何人访问,而授权法,是针对某一权限用户,只用某一用户,才可以远程访问,安全性更高
mysql>GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION //赋予任何主机访问数据的权限
mysql>FLUSH PRIVILEGES //修改生效
mysql>EXIT //退出MySQL服务器

这样就可以在其它任何的主机上以root身份登录啦!
如果启动报错,可以使用如下方式尝试解决

centos7 mysql The server quit without updating PID file(错误解决)
centos7 mysql The server quit without updating PID file(错误解决)

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 194,911评论 5 460
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 82,014评论 2 371
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 142,129评论 0 320
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,283评论 1 264
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 61,159评论 4 357
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,161评论 1 272
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,565评论 3 382
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,251评论 0 253
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,531评论 1 292
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,619评论 2 310
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,383评论 1 326
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,255评论 3 313
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,624评论 3 299
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 28,916评论 0 17
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,199评论 1 250
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,553评论 2 342
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,756评论 2 335

推荐阅读更多精彩内容