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文件。