centos7 mysql5.7源码安装

mysql5.7安装注意事项:

1.mysql5.7中mysql_install_db已经不再推荐使用了,建议改成mysql-initialize完成实例初始化。

(mysql_install_db在mysq/bin下,同时取消了mysql/scripts目录)

2.在初始化时如果加上--initialize-insecure,则会创建空密码root@localhost账号,否则会创建带密码的root@localhost账号,密码直接写在log-error日志文件中;

3.mysql5.7与5.6安装主要区别在数据库初始化过程。

mysql5.7安装步骤:

安装相关依赖:

yum -y groupinstall "Development tools"

yum -y install ncurses ncurses-devel openssl-devel bison gcc gcc-c++ make

创建相关目录

mkdir -p /user/local/mysql5.7

mkdir -p /user/local/mysql5.7/data

mkdir -p /user/local/mysql5.7/log

mkdir -p /user/local/mysql5.7/tmp

赋权 建账号

useradd mysql

chown mysql:mysql -R /user/local/mysql5.7

下载二进制包:

cd /user/local/mysql5.7

wget https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.24-linux-glibc2.12-x86_64.tar.gz

解压二进制包:

tar -xvf mysql-5.7.24-linux-glibc2.12-x86_64.tar.gz 

mv mysql-5.7.24-linux-glibc2.12-x86_64 ./*

rm -rf mysql-5.7.24-linux-glibc2.12-x86_64

编辑配置文件:

vim /etc/my.cnf 没有就默认配置

初始化mysql

/usr/local/mysql5.7/bin/mysqld --defaults-file=/etc/my3306.cnf --initialize-insecure --explicit_defaults_for_timestamp --basedir=/usr/local/mysql5.7 --datadir=/usr/local/mysql5.7/data/ --user=mysql

启动mysql

/usr/local/mysql5.7/bin/mysqld_safe --defaults-file=/etc/my3306.cnf --datadir=/usr/local/mysql5.7/data/ --user=mysql &

登录mysql 

 /usr/local/mysql5.7/bin/mysql -S /user/local/mysql5.7/tmp/mysql.sock

设置密码:

select user,host,authentication_string from mysql.user;
update mysql.user set authentication_string=password('root') where user='root';

设置环境变量及开机自启动

  

 
CentOS7开始使得以往老版本系统服务的/etc/init.d的启动脚本的方式就此改变,在CentOS7中所有对服务的管理都集中到了systemctl当中。

systemctl是一个系统管理守护进程、工具和库的集合,用于取代以往的System V、service和chkconfig命令。

创建用于启动MySQL的配置文件
[root@localhost ~]# touch /usr/lib/systemd/system/mysqld.service
[root@localhost ~]# cd /usr/lib/systemd/system
[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/mysql5.7/bin/mysqld --defaults-file=/etc/my3306.cnf --datadir=/usr/local/mysql5.7/data/ --user=mysql
ExecStop= mysqladmin shutdown
LimitNOFILE = 5000

###备注:ExecStart
查找mysqld路径,例如:
[root@localhost system]# which mysqld
/opt/mysql-5.7.18/bin/mysqld


通过systemctl方式启动mysql5.7:
[root@localhost system]# systemctl start mysqld
添加自启动:
systemctl enable mysqld

ps -ef|grep mysql 查看是否启动 

将mysql加入环境变量:

vim /etc/profile

export PATH=$PATH:/usr/local/mysql5.7/bin、

source /etc/profile

问题:

1.遇到在centos里安装mysql数据库后,登录时提示‘/tmp/mysql.sock’

 进入到‘/etc/’目录下,找到my.cnf文件打开,在最后一行下面加入一下内容,因为“[mysqld]”是针对服务端进行设置,[mysql]”是针对客户端访问进行设置;

设置软连接 ln -s /usr/local/mysql5.7/tmp/mysql.sock /tmp/mysql.sock

2.启动mysql为什么用mysqld_safe而不直接用mysqld

mysqld_safe与mysqld区别,mysqld_safe脚本会在启动MySQL服务器后继续监控其运行情况,并在其死机时重新启动它。

它通常做如下事情:

1. 检查系统和选项。
2. 检查MyISAM表。
3. 保持MySQL服务器窗口。
4. 启动并监视mysqld,如果因错误终止则重启。
5. 将mysqld的错误消息发送到数据目录中的host_name.err 文件。
6. 将mysqld_safe的屏幕输出发送到数据目录中的host_name.safe文件。

猜你喜欢

转载自blog.csdn.net/sinat_41780498/article/details/83382480