友情推荐
CentOS7.3编译安装LNMP之(一)Nginx-1.16.0安装
CentOS7.3编译安装LNMP之(三)PHP-7.2.18安装
1、下载(免编译包安装)
进入
选择如下:
进入
复制此链接地址,即可拿到下载地址https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.26-el7-x86_64.tar.gz
# cd /mydata
# wget https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.26-el7-x86_64.tar.gz
最后出现 100% 大小为 714050311 现在完成
2、准备、安装依赖
1、 卸载系统自带的mariadb*
# rpm -qa|grep mariadb
mariadb-libs-5.5.60-1.el7_5.x86_64
# rpm -e --nodeps mariadb-libs-5.5.60-1.el7_5.x86_64 删除此
或者使用yum命令删除
# yum -y remove mariadb* boost-*
2、检查mysq用户、用户组是否存在,不存在就创建
[root@localhost /]# cat /etc/group | grep mysql
[root@localhost /]# cat /etc/passwd | grep mysql
[root@localhost /]#
[root@localhost /]# useradd -M -s /sbin/nologin mysql //创建名为mysq的用户并且没有登录权限 (不指定 -g默认创建了同名mysql的用户组)
3、删除my.cnf mysql (若存在)
[root@localhost /]# rm -f /etc/my.cnf
[root@localhost /]# rpm -qa | grep mysql
3、解压安装
此版本是免编译安装包,因此和二进制编译安装包略有不同。
# 解压到 /usr/local/mysql/ (即安装目录)
# cd /mydata
# mkdir -p /usr/local/mysql
#
# tar -zxvf mysql-5.7.26-el7-x86_64.tar.gz //解压
# mv /mydata/mysql-5.7.25-el7-x86_64/* /usr/local/mysql/ //移动到安装目录
# mkdir /usr/local/mysql/data (数据库目录)
# mkdir /usr/local/mysql/log (日志目录)
# touch /usr/local/mysql/log/mysqld.log (创建日志文档)
//改变mysql的属组
# chown -R mysql:mysql /usr/local/mysql/
或者下面两句
# chown -R mysql /usr/local/mysql/
# chgrp -R mysql /usr/local/mysql/
安装
# /usr/local/mysql/bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql/ --datadir=/usr/local/mysql/data/
此版本采用mysql_install_db 进行安装,不再使用cmake 编译安装
# /usr/local/mysql/bin/mysql_install_db //安装命令
--initialize //生成默认密码
--user=mysql //指定mysql用户
--basedir=/usr/local/mysql/ //安装目录
--datadir=/usr/local/mysql/data/ // 数据库目录
出现:
2019-05-07T03:04:49.824821Z 0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option (see documentation for more details).
2019-05-07T03:04:50.975204Z 0 [Warning] InnoDB: New log files created, LSN=45790
2019-05-07T03:04:51.142538Z 0 [Warning] InnoDB: Creating foreign key constraint system tables.
2019-05-07T03:04:51.210782Z 0 [Warning] No existing UUID has been found, so we assume that this is the first time that this server has been started. Generating a new UUID: e16df48e-7074-11e9-83d9-fa163ed3ecd0.
2019-05-07T03:04:51.213245Z 0 [Warning] Gtid table is not ready to be used. Table 'mysql.gtid_executed' cannot be opened.
2019-05-07T03:04:51.214048Z 1 [Note] A temporary password is generated for root@localhost: bdW88t??jkU1
[root@qinser local]#
OK 安装成功
注意最后的 bdW88t??jkU1 表示默认密码,下面初始化数据库要用到
如果报错: /usr/local/mysql/bin/mysqld: error while loading shared libraries: libnuma.so.1: cannot open shared object file: No such file or directory
是因为有个依赖包没有安装:解决办法:
# yum remove libnuma.so.1
# yum -y install numactl.x86_64
再次执行 OK
查看数据库目录 /usr/local/mysql/data/ 有如下生成:
安装完成
4、创建配置文件my.cnf
# vim /etc/my.cnf
# ======================== 粘贴内容 start ========================
[mysqld]
basedir=/usr/local/mysql/
datadir=/usr/local/mysql/data
socket=/tmp/mysql.sock
user=mysql
symbolic-links=0
lower_case_table_names=1
# 允许最大连接数
max_connections=200
# 服务端使用的字符集默认为8比特编码的latin1字符集
character-set-server=utf8
# 创建新表时将使用的默认存储引擎
default-storage-engine=INNODB
max_allowed_packet=16M
[client]
port=3306
[mysqld_safe]
log-error=/usr/local/mysql/log/mysqld.log
# ======================== 粘贴内容 end ========================
//设置此文件可执行权限
# chmod 644 /etc/my.cnf
5、启动并添加到环境变量
#创建驱动文件
# cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld
#修改变量
# vim /etc/init.d/mysqld
给以下两个变量赋值
basedir=/url/local/mysql/
datadir=/url/local/mysql/data
# chmod +x /etc/init.d/mysqld
# service mysqld start //启动
出现
Starting MySQL. [ OK ]
OK 启动成功
[root@qinser /]# netstat -tlnp | grep mysqld 查看端口号
tcp6 0 0 :::3306 :::* LISTEN 17093/mysqld
# 添加到环境变量
# vim /etc/profile
在此文件最后添加如下内容:
# MYSQL
export PATH="$PATH:/usr/local/mysql/bin"
//立即生效
# source /etc/profile
# echo $PATH
6、更改默认密码
// 获取初始密码
# cat /root/.mysql_secret
# Password set for user 'root@localhost' at 2019-04-21 03:02:13
Kkxii!:fvS.a <------这个就是初始密码
//修改密码
[root@qinser mydata]# mysql -u root -p
Enter password: <------这里输入上面的初始密码
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 11
Server version: 5.7.26
mysql> set PASSWORD = PASSWORD('niu123456'); <----- 新密码 niu123456
mysql> flush privileges; // 使用flush privileges在插入之后刷新系统权限相关表
Query OK, 0 rows affected (0.00 sec)
OK 新密码设置成功
7、设置开启启动
方法一:(推荐)
# chkconfig --add mysqld //加入系统中,可以是使用 systemctl status mysqld.service 命令了
# chkconfig mysqld on //开机自启动
方法二:
[root@VMTest mysql]# chkconfig --level 35 mysqld on
[root@VMTest mysql]# chkconfig --list mysqld
[root@VMTest mysql]# chkconfig --add mysqld
[root@VMTest mysql]# chkconfig --list mysqld
[root@VMTest mysql]# service mysqld status
8、设置远程访问
mysql> use mysql;
mysql> select host,user from user;
+-----------+---------------+
| host | user |
+-----------+---------------+
| localhost | mysql.session |
| localhost | mysql.sys |
| localhost | root |
+-----------+---------------+
3 rows in set (0.00 sec)
mysql> grant all privileges on *.* to 'root'@'%' identified by 'niu123456';
ERROR 1819 (HY000): Your password does not satisfy the current policy requirements -- 提示密码太难简单
mysql>
mysql> set global validate_password_policy=0; //降低密码复杂度
Query OK, 0 rows affected (0.01 sec)
mysql> grant all privileges on *.* to 'root'@'%' identified by 'niu123456';
Query OK, 0 rows affected, 1 warning (0.00 sec)
mysql> select user,host from user;
+---------------+-----------+
| user | host |
+---------------+-----------+
| root | % |
| mysql.session | localhost |
| mysql.sys | localhost |
| root | localhost |
+---------------+-----------+
4 rows in set (0.00 sec)
mysql>
mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)
OK 可以远程连接了
Mysql5.7.26 安装全部完成
附:常用命令
#
# /etc/init.d/mysqld
Usage: mysqld {start|stop|restart|reload|force-reload|status} [ MySQL server options ]
# /etc/init.d/mysqld start //开启
# /etc/init.d/mysqld stop //停止
# /etc/init.d/mysqld restart //重启(强制重启)
# /etc/init.d/mysqld reload //平滑重启(在开启的状态下)
# /etc/init.d/mysqld status //查看状态
加入环境变量以后可以使用
# service mysqld {start|stop|restart|reload|force-reload|status}
或者
# systemctl {start|stop|restart|reload|force-reload|status} mysqld.service
# netstat -tlnp //查看所有端口号
# ps aux | grep mysqld //查看进程
# kill 9203 //通过杀死进程结束mysql
MySQL基本操作常用命令
# 本地连接数据库
# mysql -u root -p
Enter password:
也可以直接写成
# mysql -uroot -p'niu123456'
# 远程连接数据库(如在118.24.241.124上连接106.12.2.195上的)
# mysql -u root -p -h106.12.2.195 -P3306 //-h用于指定登录主机的IP地址,-P(大写)用于指定远程主机的端口
Enter password:
mysql> show databases; //显示所有数据库
mysql> use mysql; //选择mysql数据库
mysql> show tables; //显示当前mysql数据库中的所有数据表
mysql> desc user; //显示user表的所有字段
mysql> show create table user\G; //显示user表的建表语句
mysql> show create database mysql\G; //显示mysql数据库的建库语句
mysql> select version(); //查看当前数据库的版本
mysql> select user(); //查看当前是哪个用户
mysql> select database(); //查看当前是哪个数据库
mysql> show status; //查看mysql当前状态
mysql> show variables; //查看mysql的参数
mysql> show variables like '%dir';
mysql> show processlist; //查看当前mysql服务器的队列
mysql> grant all on *.* to niuxitong identified by 'niu123456'; //创建一个普通用户niuxitong *.* 前一个*表示所有数据库 ,后一个*表示所有表 密码用单引号括起来
mysqldump -u root -p 'niu123456' mysql > /mydata/databack/mysql-001.sql; //为名为mysql的数据库做备份。导出sql文件保存到/mydata/databack/mysql-001.sql文件中
mysql -u root -p 'niu123456' mysql < /mydata/databack/mysql-001.sql; 还原数据库