yum-y install ncurses ncurses-devel bison cmake


(用于管理程序,主要是提升系统安全性。系统账号的shell使用 /sbin/nologin ,此时无法登录系统,即使给了密码也不行)
useradd -s /sbin/nologin mysql

查看是否创建成功:
cat /etc/passwd |cut -f 1 -d :



tar xf mysql-boost-5.7.20.tar.gz

查看解压是否成功:ls -lh

cd mysql-5.7.20/
cmake \-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \ #安装目录-DMYSQL_UNIX_ADDR=/usr/local/mysql/mysql.sock \ #指定套接字文件的存储路径-DSYSCONFDIR=/etc \ #配置my.cnf的目录-DSYSTEMD_PID_DIR=/usr/local/mysql \ #主服务进程所在路径-DDEFAULT_CHARSET=utf8 \ #默认字符集-DDEFAULT_COLLATION=utf8_general_ci \ #默认编码-DWITH_INNOBASE_STORAGE_ENGINE=1 \ #启用InnoDB引擎-DWITH_ARCHIVE_STORAGE_ENGINE=1 \ #启用ARCHIVE引擎-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \ #启用BLACKHOLE引擎-DWITH_PERFSCHEMA_STORAGE_ENGINE=1 \ #启用perfschema引擎存储引擎就是如何存储数据、如何为存储的数据建立索引和如何更新、查询数据等技术 的实现方法。-DMYSQL_DATADIR=/usr/local/mysql/data \ #数据存储路径-DWITH_BOOST=boost \ #boost库是为C++语言标准库提供扩展的一些C++程序库的总 称-DWITH_SYSTEMD=1 #-DWITH_SYSTEMD=1 这是MySQL 5.7原生支持Systemd的选项, 如果要是用systemctl启动,就必须开启。
make && make install

等待完成......

(1)在/usr/local/中查看是否有mysql目录,及其属主、属组

(2) 修改属主、属组:chown -R mysql:mysql /usr/local/mysql/

Mysql目录下的文件属主、属组同样更改了

vi /etc/my.cnf
重建配置:
[client] //普通用户端口号port = 3306default-character-set=utf8 //默认字符集socket = /usr/local/mysql/mysql.sock //指定套接字文件的存储路径[mysql]port = 3306default-character-set=utf8socket = /usr/local/mysql/mysql.sock[mysqld] //服务user = mysqlbasedir = /usr/local/mysqldatadir = /usr/local/mysql/dataport = 3306character_set_server=utf8pid-file = /usr/local/mysql/mysqld.pid //进程文件socket = /usr/local/mysql/mysql.sockserver-id = 1//每个数据库的id必须不一样sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_AUTO_VALUE_ON_ZERO,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,PIPES_AS_CONCAT,ANSI_QUOTES

保存退出:【:wq】
chown mysql:mysql /etc/my.cnf


echo 'PATH=/usr/local/mysql/bin:/usr/local/mysql/lib:$PATH' >> /etc/profile
echo 'export PATH' >> /etc/profile

完成后:vi /etc/profile,转到最下面查看是否配置进了变量


使环境变量生效:【source /etc/profile】

cd /usr/local/mysql/bin/s
mysqld \--initialize-insecure \ 使用--initialize生成随机密码,使用--initialize-insecure生成空密码--user=mysql \ #指定运行账户为mysql,默认为root--basedir=/usr/local/mysql \--datadir=/usr/local/mysql/data

cp /usr/local/mysql/usr/lib/systemd/system/mysqld.service /usr/lib/systemd/system/#拷贝

systemctl daemon-reload#守护进程重新加载

systemctl start mysqld查看mysql状态:systemctl status mysqld

查看mysql端口号:netstat -anpt | grep 3306

到/usr/local/mysql/可看到新生成的data目录:


mysqladmin -u root -p password 'abc123'

测试密码是否设置成功

登录mysql -u root -p
PS:
清除yum缓存:yum clean all(如果清除缓存
出现进程占用问题,按ctrl C,会打出(^C)终止进程,然后输入“kill -9 进程编码”命令,关闭进程后再清除yum缓存)
创建yum缓存:yum makecache(更新yum源或者出现配置yum源之后,通常都会使用yum makecache 生成缓存)
mysql>GRANT all privileges ON 库名.表名 TO 'root'@'%' IDENTIFIED BY 'abc123';
所有库/表,用*表示
FLUSH PRIVILEGES;刷新