1、查看系统中是否已安装mysql
rpm -qa |grep mysql
注:返回空值说明没有安装mysql,在新版本的CentOS7中,默认的数据库已更新为了Mariadb,而非 MySQL,所以执行 yum install mysql 命令只是更新Mariadb数据库,并不会安装 MySQL 。
2、查看mariadb版本
rpm -qa|grep -i mariadb
3、卸载mariadb
rpm -qa|grep mariadb|xargs rpm -e --nodeps
4、确认是否卸载完成
rpm -qa|grep -i mariadb
5、下载安装包文件
wget http://repo.mysql.com/mysql-community-release-el7-5.noarch.rpm
6、安装mysql-community-release-el7-5.noarch.rpm包
rpm -ivh mysql-community-release-el7-5.noarch.rpm
安装完成之后,会在 /etc/yum.repos.d/ 目录下新增 mysql-community.repo 、mysql-community-source.repo 两个 yum 源文件。
执行 yum repolist all | grep mysql 命令查看可用的 mysql 安装文件。
7、安装mysql
yum install -y mysql-server
chown mysql:mysql -R /var/lib/mysql
mysqld --initialize //初始化mysql
8、查看是否安装成功
rpm -qa | grep mysql
mysql常用文件路径:
/etc/my.cnf 这是mysql的主配置文件
/var/lib/mysql mysql数据库的数据库文件存放位置
/var/logs/mysqld.log 数据库的日志输出存放位置
其它配置
[mysql]
#设置mysql客户端默认编码
default-character-set=utf8
[mysqld]
#开启mysql日志
slow_query_log=on
#慢查询日志文件路径
slow_query_log_file=/var/lib/mysql/master-slow.log
#超过多少秒的查询就写入日志
long_query_time=3
#开启未命中索引日志打印
log_queries_not_using_indexes=on
#跳过密码验证
#skip-grant-tables
#最大连接数
max_connections=5000
#8.0以上已经取消了NO_AUTO_CREATE_USER这个关键字,删掉sql语句中的这个关键字即可
sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION
连接数设置:
修改MySQL服务文件:
echo “LimitNOFILE = 65535” >> /etc/systemd/system/mysql.service
重新加载:
systemctl daemon-reload
9、启动mysql服务
systemctl start mysqld.service #启动 mysql
systemctl restart mysqld.service #重启 mysql
systemctl stop mysqld.service #停止 mysql
systemctl enable mysqld.service #设置 mysql 开机启动
10、设置密码
mysql5.6 安装完成后,它的 root 用户的密码默认是空的,我们需要及时用 mysql 的 root 用户登录(第一次直接回车,不用输入密码),并修改密码
mysql -u root
mysql> use mysql;
mysql> update user set password=PASSWORD(“111111”) where User=‘root’;
mysql> flush privileges;
11、设置远程主机登陆
mysql> CREATE USER ‘abc’@‘’ IDENTIFIED BY ‘111111’;
mysql> GRANT ALL PRIVILEGES ON . TO ‘abc’@'’ IDENTIFIED BY ‘111111’;
执行以下命令,为root 用户添加远程登录的能力。
mysql> GRANT ALL PRIVILEGES ON . TO root@“localhost” IDENTIFIED BY “111111”;
mysql> GRANT ALL PRIVILEGES ON . TO root@‘%’ IDENTIFIED BY ‘mysqllvyuangou@123’ WITH GRANT OPTION;
注:
mysql修改密码后无法登陆
systemctl stop mysql
mysqld_safe --user=mysql --skip-grant-tables --skip-networking &
mysql -u root mysql
mysql> UPDATE user SET Password=PASSWORD(’newpassword’) where USER=’root’;
mysql> FLUSH PRIVILEGES;
mysql> quit
systemctl restart mysql
若启动报错,ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)
查看mysql是否已启动过,ps -ef |grep mysql查看,若有进程存在,kill pid 后重启mysql
mysql -uroot -p
Enter password: <输入新设的密码newpassword>
修改密码:
vim /etc/my.cnf
在这个文件里加入命令"skip -grant-tables"
可以让你无需输入密码进行登录。
重启mysql
登录mysql
mysql -u root -p
use mysql;
update user set authentication_string=‘’ where user=‘root’;
update user set plugin=‘mysql_native_password’ where user=‘root’;
flush privileges;
ALTER user ‘root’@‘localhost’ IDENTIFIED BY ‘mysqladmin@123’;
quit
将mysqld.cnf中添加的注释掉,重启mysql
测试慢日志文件是否生效:
SELECT SLEEP(4)
慢日志文件配置在其它目录下可能没有权限写入,你可以指定权限
检查慢日志文件生效命令:
show variables like ‘%slow_query_log%’;
show variables like ‘%long_query_time%’;
未命中索引配置
show variables like ‘log_queries_not_using_indexes’
手动设置慢日志文件生效命令:
SET GLOBAL long_query_time = 4;
SET GLOBAL slow_query_log = ‘ON’;
未命中索引配置
SET GLOBAL log_queries_not_using_indexes = ‘ON’;