脚踩泥泞的时候,也不要忘了抬头仰望星空。我不生产知识,我只是知识的搬运工。
MySQL是一种开源的关系型数据库产品,具有开放式的架构。
MySQL的安装与部署
以下采用二进制包的安装方式来安装MySQL5.7.16.
1.下载软件包
去官方网站下载相关的软件包。
输入mysql.org.com,找到需要下载的数据库压缩包。
我们下载到的是mysql-5.7.16-linux-glibc2.5-x86_64.tar.gz二进制安装包。
2.安装依赖包软件
yum install zlib-devel gcc-c++ ncurses ncurses-devel libaio libiao-devel -y
3.安装MySQL
useradd mysql -s /sbin/nologin -M
mkdir /mysql/data -p
chown -R mysql.mysql /mysql/
tar zxvf mysql-5.7.16-linux-glibc2.5-x86_64.tar.gz -C /usr/local/
ln -s /usr/local/mysql-5.7.16-linux-glibc2.5-x86_64/ /usr/local/mysql
准备切换目录
cd /usr/local/mysql
cp support-files/my-default.cnf /etc/my.cnf
输入yes,y覆盖
cp support-files/mysql.server /etc/init.d/mysqld
chmod +x /etc/init.d/mysqld
进行初始化配置
./bin/mysqld --initialize --basedir=/usr/local/mysql --datadir=/mysql/data/ --user=mysql
注意进行初始化配置的时候往往会报错
mysql安装时失败,报错如上,原因是没有安装libaio.so.1,安装即可:
yum install -y libaio
然后重新安装即可。yum install -y libaio
重新初始化配置就可以了
./bin/mysqld --initialize --basedir=/usr/local/mysql --datadir=/mysql/data/ --user=mysql
初始化之后找个记事本记一下这个随机密码,待会儿往下走会用到。
root@localhost: QlvyuMJe6<o.(密码)
egrep -v "^#|^$" /etc/my.cnf 过滤出不带#字开头,不带空格的字段。
修改配置文件为如下内容
vim /etc/my.cnf
[client]
port=3306
socket=/mysql/mysql.sock
[mysqld]
basedir=/usr/local/mysql
datadir=/mysql/data/
port=3306
server_id=1
socket=/mysql/mysql.sock
log-bin=/mysql/mysql-bin
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
[mysqld_safe]
log-error=/mysql/mysql.log
pid-file=/mysql/mysql.pid
4.启动MySQL并检查
/etc/init.d/mysqld start
出现success!则为启动成功
lsof -i :3306 #查看3306端口被哪个进程占用
[root@test mysql]# lsof -i :3306
进程名称 进程标识符 进程所有者 文件描述符 文件类型 磁盘名称 文件大小 索引节点
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
mysqld 18100 mysql 16u IPv6 50346 0t0 TCP *: mysql (LISTEN)
5.配置环境变量
echo 'export PATH=$PATH:/usr/local/mysql/bin'>> /etc/profile
source /etc/profile
6.登录数据库并修改root用户初始密码
mysql -uroot -p
enter password: QlvyuMJe6<o.(随机密码)
alter user 'root'@'localhost' identified by '123'; #修改为新密码
flush privileges;
接下来就可以使用新密码登录数据库了。
mysql -uroot -p
enter password: 123
就可以登录了。
MySQL的安装配置已完成。下面是我介绍MySQL的目录结构与配置文件,想了解的往下看,没时间的小伙伴可忽略跳过。
MySQL服务的目录结构,MySQL服务的配置文件中一些配置行的作用。
1.MySQL的目录结构
[dxm@root mysql]# tree -L 1
.├── bin #命令、客户端程序与脚本文件目录
├── COPYING
├── docs #文档、changelog目录
├── include #包含文件目录
├── lib #库文件目录
├── man #帮助文档目录
├── README
├── share #错误信息与字符集文件目录
└── support-files #自带的默认配置文件目录
2.MySQL的配置文件
[dxmt@test mysql]# egrep -v "^#|^$" /etc/my.cnf
[client] #客户端的配置标识
port=3306 #服务所使用的端口号
socket=/mysql/mysql.sock #套接字文件的存放目录
[mysqld] #启动命令的配置标识
basedir=/usr/local/mysql #服务安装目录
datadir=/mysql/data/ #MySQL的数据存储目录
port=3306
server_id=1 #server_id
socket=/mysql/mysql.sock
log-bin=/mysql/mysql-bin #打开binlog日志功能
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES #SQL模式
[mysqld_safe]
log-error=/mysql/mysql.log #错误日志存放目录
pid-file=/mysql/mysql.pid #pid文件存放目录
小心:在生产环境中,一定要打开binlog日志功能,binlog日志会记录数据库所有的增删改操作,若不小心删除、清空数据,或数据库系统出错时,可以使用binlog日志还原数据库。
小结: egrep -v "^#|^$" /etc/my.cnf 过滤不代表删除,只是过滤出想要的配置行。
每个服务都有自己对应的配置文件,配置文件里有错误日志存放目录及各种目录。
每个服务都拥有自己的端口号
每个服务都有自己的安装目录
每个服务都有自己的数据存储目录
标签:local,配置,etc,mysqld,mysql,MySQL,安装,目录 From: https://www.cnblogs.com/ypyyds/p/16796942.html