1.检查服务器是否已安装MySQL,如已安装则将其卸载:
rpm -qa|grep mysql (-q表示使用询问模式,当遇到任何问题时,rpm指令会先询问用户。-a表示查询所有套件。)[新机无mysql]
2.检查服务器是否已安装Mariadb,如已安装则将其卸载:
3.上传MySQL包,并解压
4.建议改名
mv mysql-5.7.22-linux-glibc2.12-x86_64 mysql
把改名后的mysql移动到/usr/local下
mv mysql /usr/local/
5.添加MySQL组和用户
groupadd mysql
useradd -r -g mysql mysql (-r表示建立系统账号,-g表示指定所属群组)
6.创建mysql数据目录,回到根目录
mkdir -p /data/mysql
7.授权
chown mysql:mysql -R /data/mysql
8.创建配置文件
vi /etc/my.cnf
如下内容:
[mysqld]
bind-address=0.0.0.0
port=3306
user=mysql
basedir=/usr/local/mysql
datadir=/data/mysql
socket=/tmp/mysql.sock
log-error=/data/mysql/mysql.err
pid-file=/data/mysql/mysql.pid
#character config
character_set_server=utf8mb4
保存退出!
9.初始化MySQL
进入mysql的bin目录
cd /usr/local/mysql/bin/
进行初始化:
./mysqld --defaults-file=/etc/my.cnf --basedir=/usr/local/mysql/ --datadir=/data/mysql/ --user=mysql --initialize
查看初始化密码(记得保存密码):
vi /data/mysql/mysql.err
10.启动MySQL服务
service mysql start
11.进入数据库
mysql -uroot -p
建议更改密码
(1)mysqladmin -u root -p’旧密码’ password ‘新密码’
(2)alter user ‘root’@‘localhost’ identified by ‘123’;(保证密码永不过期)
flush privileges;(MySQL用户数据和权限有修改后,希望在"不重启MySQL服务"的情况下直接生效,那么就需要执行这个命令。
注意:
如果报错信息如下
A.service mysql启动失败 提示unit not found 解决办法
解决:
将找到的路径复制到 /etc/init.d/mysql路径中
cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql
然后重启
B.mysql command not found
解决:
第一种即可:增加软连接:ln -s /usr/local/mysql/bin/mysql /usr/bin
2. 找到mysql/bin的位置,正常情况下是 /usr/local/mysql/bin在最后添加:export PATH=$PATH:/usr/local/mysql/bin 保存退出。
额外—MySQL开机自启 (有待验证)
如果不想每次开机都去启动MySQL服务,那么就设置吧
cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql 将服务文件拷贝到init.d下,并重命名为mysql
确保 /etc/init.d/ 目录下有mysql.server
赋予可执行权限 chmod +x /etc/init.d/mysql
添加服务 chkconfig --add mysql
显示服务列表 chkconfig --list 如果看到mysql的服务,并且3,4,5都是on的话则成功如果是off,则键入chkconfig --level 345 mysql on
reboot重启电脑
netstat -na | grep 3306,如果看到有监听说明服务启动了
注意:大版本内的升级小版本
只要把对应的版本包解压,tar 然后通过ln -s链接到老版本的地方
比如这个例子就是老版本在/usr/local/mysql ln -s 高版本解压出来的目录 /usr/local/mysql
一定要把老版本备份
如:mysql-5.7.23升级mysql-5.7.25
1.关闭数据库
pkill -9 mysql
或
/usr/loca/mysql/bin/mysqladmin -uroot -p密码- -S /tmp/mysql_3306.sock(根据实际路径修改) shutdown
2.上传mysql最新版本软件并解压。
cd /tmp/update
tar zxvf mysql-5.7.25-linux-glibc2.12-x86_64.tar.gz
mv mysql-5.7.25-linux-glibc2.12-x86_64 /usr/local/
chown -R mysql.mysql mysql-5.7.25-linux-glibc2.12-x86_64
3.添加软连
cd /usr/local/
ln -s mysql-5.7.25-linux-glibc2.12-x86_64 mysql
4.切到新软件目录启动数据库
chown -R mysql:mysql ./*
./bin/mysqld_safe --defaults-file=/usr/local/mysql/etc/my.cnf & (指定配置文件启动)
5.登录测试
/usr/local/mysql/bin/mysql -uroot -p密码 -S /usr/local/mysql/mysql.sock
+++++++++++++++++++++++++++++++++++++++++
+++++++++++++++++++++++++++++++++++++++++
CentOS7中使用systemctl工具管理启动和停止MySQL
编辑如下文件:
1.vim /etc/systemd/system/mysqld.service
[Unit]
Description=MySQL Server
Documentation=man:mysqld(8)
Documentation=http://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
LimitNOFILE = 5000
保存退出!
2,重新加载一下服务的配置文件
systemctl daemon-reload
3.启动mysql
systemctl start mysqld.service
注意:需要注意的地方(上方的配置文件中)
(1. --defaults-file=/etc/my.cnf 这个是指向mysql的配置文件,要根据实际情况来管理
2.如果一个服务器上启动多个mysql实例要怎么使用systemctl启动呢?
可以使用命名不同的方式来管理不同的实例,例如例子中使用的服务名是mysqld.service
可以写成mysql3306.service 和mysql3307.service 这样里面的配置文件也要指定相应的位置。否则启动容易出问题)