MySQL系列-安装与管理

最流行的关系型数据库,主要是用来存储用户数据、商品数据等等

mysql目前是属于oracle的旗下产品,oracle也是知名的关系型数据库,但它是收费的

另外还有一种非关系型数据redis、mongodb等

 

下载地址

 

https://dev.mysql.com/downloads/mysql/

source code源码安装

 

编译安装

yum install -y gcc gcc-c++ make tar openssl openssl-devel cmake ncurses ncurses-devel #安装依赖包

  useradd -s /sbin/nologin mysql   # 创建mysql用户

 cd /usr/local/src

 tar -zxvf  mysql-boost-5.7.29.tar.gz

 cd mysql-5.7.29

 cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DMYSQL_DATADIR=/data/mysql -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DWITH_EXTRA_CHARSETS:STRING=all -DWITH_DEBUG=0 -DWITH_SSL=yes -DWITH_READLINE=1 -DENABLED_LOCAL_INFILE=1 DWITH_BOOST=/usr/local/src/mysql-5.7.29/boost

 make && make install

 

 cp support-files/mysql.server /etc/init.d/mysqld  #复制一个执行脚本

 

 chmod a+x /etc/init.d/mysqld     #赋予执行权限

 

检查mysql是否安装成功

/usr/local/mysql/bin/mysql --version    

 

mysql的默认配置需要更改,转为默认配置太简洁  /etc/my.cnf

[mysqld]

bind-address=127.0.0.1           #监听IP

port=3306                        #监听端口

datadir=/data/mysql              #数据目录

socket=/tmp/mysql.sock           #指定socket路径,默认就是/tmp/mysql.sock

user=mysql

skip-name-resolve

slow_query_log=on                #开启慢日志

long_query_time=1

slow_query_log_file=/data/mysql/mysql-slow.log               #慢日志文件

expire_logs_days=2

innodb-file-per-table=1                        #独立的表空间

innodb_flush_log_at_trx_commit = 2             #配置为1表示数据写入后马上写到磁盘,系统压力大。配置为2的话,会每秒执行一次写盘的操作,压力较小

log_warnings = 1                               #警告信息写入日志

max_allowed_packet      = 512M

connect_timeout = 60

net_read_timeout = 120

 

[mysqld_safe]

log-error=/data/mysql/mysqld.log

pid-file=/data/mysql/mysqld.pid

 

 Mysql启动前需要进行数据的初始化

mkdir -pv /data/mysql

chown -R mysql:mysql /data/mysql

yum install -y perl-Module-Install #数据初始化脚本依赖于per,所以先安装一个perl

5.7版本后初始化用--initialize
/usr/local/mysql/bin/mysqld --initialize --basedir=/usr/local/mysql   --datadir=/data/mysql --user=mysql

2020-07-31T00:48:22.676786Z 0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option (see documentation for more details).
2020-07-31T00:48:22.678711Z 0 [ERROR] --initialize specified but the data directory has files in it. Aborting.
2020-07-31T00:48:22.678760Z 0 [ERROR] Aborting

#大概意思是因为数据目录中有数据
[root@Nginx mysql]# ll /data/mysql/
发现里面确实有文件,将文件删除删除,初始化成功


 

初始化完启动mysql服务器

/etc/init.d/mysqld start #用提供的脚本启动

/etc/init.d/mysqld stop #用提供的脚本关闭

 

 

使用systemctl管理/usr/lib/systemd/system/mysqld.service

 

[Unit]
Description=mysqld
After=network.target remote-fs.target nss-lookup.target

[Service]
Type=forking
ExecStart=/etc/init.d/mysqld start
ExecStop=/etc/init.d/mysqld stop

[Install]
WantedBy=multi-user.target

 

使用mysql客户端,不加这个命令,mysql命令是无法使用的

ln -s /usr/local/mysql/bin/mysql /usr/local/bin/ #mysql命令经常使用

 

posted @ 2020-08-01 11:33  冬城暖阳  阅读(146)  评论(0)    收藏  举报