Mysql基础---安装和配置

一.mysql安装

1.rpm、yum安装
安装方便、安装速度快,无法定制

2.二进制
不需要安装,解压即可使用,不能定制功能

  1. 编译安装
    3.1 可定制,安装慢
    3.2 四个步骤:
    3.2.1 解压(tar)
    3.2.2 生成(./configure)cmake
    3.2.3 编译(make)
    3.2.4 安装(make install)
    3.3 5.5版本之前:tar ./configure make make install
    3.4 5.5版本之后:cmake gmake
  • 去官网下载mysql的二进制安装包(这里我已mysql-5.6.40为例)

  • 安装依赖

[root@petrus opt]# yum install -y ncurses-devel libaio-devel cmake
  • 解压
[root@petrus opt]# tar xf mysql-5.6.40.tar.gz 
  • 创建Mysql用户
[root@petrus opt]#useradd mysql -s /sbin/nologin -M
  • 生成编译文件
[root@petrus opt]# cd mysql-5.6.40
[root@petrus mysql-5.6.40]#cmake . -DCMAKE_INSTALL_PREFIX=/usr/local/mysql-5.6.40 \
-DMYSQL_DATADIR=/usr/local/mysql-5.6.40/data \
-DMYSQL_UNIX_ADDR=/usr/local/mysql-5.6.40/tmp/mysql.sock \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci \
-DWITH_EXTRA_CHARSETS=all \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_FEDERATED_STORAGE_ENGINE=1 \
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
-DWITHOUT_EXAMPLE_STORAGE_ENGINE=1 \
-DWITH_ZLIB=bundled \
-DWITH_SSL=bundled \
-DENABLED_LOCAL_INFILE=1 \
-DWITH_EMBEDDED_SERVER=1 \
-DENABLE_DOWNLOADS=1 \
-DWITH_DEBUG=0
  • 编译
[root@petrus mysql-5.6.40]# make
  • 安装
[root@petrus mysql-5.6.40]# make install
  • 做软连接
[root@petrus mysql-5.6.40]# ln -s /usr/local/mysql-5.6.40 /usr/local/mysql
  • 拷贝配置文件
[root@petrus mysql-5.6.40]# cd support-files/
[root@petrus support-files]# cp my-default.cnf  /etc/my.cnf    #这个地方操作不好可能启动会报错
cp: overwrite ‘/etc/my.cnf’? y
  • 拷贝启动脚本
[root@petrus support-files]# cp mysql.server /etc/init.d/mysqld
  • 初始化目录
[root@petrus mysql-5.6.40]# cd scripts
[root@petrus scripts ]#./mysql_install_db --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data
  • 创建socket存放目录
[root@petrus support-files]# mkdir /usr/local/mysql-5.6.40/tmp
  • 授权
[root@petrus support-files]# chown -R mysql.mysql /usr/local/mysql*
  • 添加环境变量
[root@petrus support-files]# vim /etc/profile.d/mysql.sh
export PATH="/usr/local/mysql/bin:$PATH"
  • 加载环境变量
[root@petrus support-files]# source /etc/profile
  • 启动mysql
[root@petrus scripts]# /etc/init.d/mysqld restart
ERROR! MySQL server PID file could not be found!
Starting MySQL.Logging to '/usr/local/mysql/data/web04.err'.
. SUCCESS!  
注意:'/usr/local/mysql/data/web04.err'.  这是mysql的错误日志
  • 进入mysql
[root@petrus scripts]# mysql
-bash: mysql: command not found
报错解决方案:因为没有添加mysql这个命令的环境变量(/usr/local/mysql/bin/mysql环境变量所在目录)
[root@petrus scripts]# vim /etc/profile.d/mysql.sh
export PATH="/usr/local/mysql/bin:$PATH"  #加上这一句

给mysql设置开机自启动:

  • [root@petrus ~]# vim /usr/lib/systemd/system/mysqld.service
添加以下内容:
[Unit]
Description=MySQL Server
Documentation=man:mysqld(8)
Documentation=https://dev.mysql.com/doc/refman/en/using-systemd.html
After=network.target
After=syslog.target
[Install]
WantedBy=multi-user.target
[Service]
User=mysql
Group=mysql
ExecStart=/usr/local/mysql/bin/mysqld --defaults-file=/etc/my.cnf  #检查/usr/local/mysql/bin/mysqld 是否有启动脚本,没有的话填写mysqld所在的路径
LimitNOFILE = 5000
  • [root@petrus ~]# /etc/init.d/mysqld stop

  • [root@petrus ~]# systemctl start mysqld 或者[root@web04 ~]# systemctl daemon-reload

  • [root@petrus ~]# systemctl enable mysqld

解决MySQL误删除root用户步骤:

  • 停库
    [root@elk01 scripts]# /etc/init.d/mysqld stop

  • 跳过授权表,网络 启动

[root@elk01 scripts]# mysqld_safe --skip-grant-tables(跳过授权表)  --skip-networking(禁止用TCP/IP远程连接) &
bg        :将当前mysql进程放在后台
ctrl+Z    :也是放在后台执行,但是只限当前终端 

  • 连接数据库
[root@elk01 ~]# mysql
  • 刷新系统授权表
mysql> flush privileges;

  • 创建用户(允许远程连接)
mysql> grant all on *.* to root@'%' identified by '123' with grant option;
  • 重启MySQL
[root@elk01 ~]# /etc/init.d/mysqld restart
  • 在没有密码的情况下给MySQL设置密码:
[root@elk01 ~]# mysqladmin -uroot -p password '123'

**注意:**在启动mysqld的时候可能会出现如下错误
在这里插入图片描述
原因说明:可能做二进制的时候少了拷贝默认配置文件的步骤,
系统本身会自带一份配置文件,但这个配置文件是mariadb 的, centos7系统使用yum install 装数据库的时候,装的是mariadb的,不是mysql,所以但我们启动mysqld的时候,会往mariadb/var/log/mariadb.log/写文件,但是这个文件又是不存在的,所以会报错,

mysqld服务启动找不到PID文件,只有服务启动会生成这个pid文件,文件记录的是当前进程的pid号,
可以进去查看:[root@web04 ~]# tail -100 /usr/local/mysql/data/web04.err

在这里插入图片描述
解决方案:https://blog.csdn.net/yushaolong1234/article/details/81741294

解决方案:拷贝mysql默认配置文件
[root@petrus opt]# cd /usr/local/mysql-5.6.40/
[root@petrus mysql-5.6.40]# cd support-files/
[root@petrus support-files]# cp my-default.cnf  /etc/my.cnf   
cp: overwrite ‘/etc/my.cnf’? y

二.多实例安装
参照:
https://www.driverzeng.com/zenglaoshi/644.html#toc_4

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值