Centos7安装Mysql
一 mysql下载
地址: https://dev.mysql.com/downloads/mysql/#downloads
二 在centos7上创建安装文件存放、解压目录,上传文件并解压
创建目录:mkdir /usr/local/mysql上传文件:(使用Xftp)...解压文件:tar -zxvf mysql-5.7.19-linux-glibc2.12-x86_64.tar.gz -C /usr/local/mysql/修改文件名称:cd /usr/local/mysql/mv mysql-5.7.19-linux-glibc2.12-x86_64 mysql
三 在mysql目录下创建data目录
当前目录:/usr/local/mysql命令:cd mysql创建文件的目录:/usr/local/mysql/mysql命令:mkdir data
四 创建用户及组
创建组: groupadd mysql 创建用户: useradd -r -g mysql mysql
五 将mysql及其下所有的目录所有者和组均设为mysql
命令:chown mysql:mysql -R .
六 初始化数据库
/usr/local/mysql/mysql/bin/mysqld --initialize --user=mysql --datadir=/usr/local/mysql/mysql/data --basedir=/usr/local/mysql/mysql
初始化成功之后会出现默认的root用户密码,如下图
七 创建修改my.cnf文件
这个版本和别的版本安装最大的区别就是别的版本在mysql/support-files下有my-default.cnf文件,别的版本只需要将my-default.cnf文件拷贝到/etc目录下即可,而这个版本需要自己创建my.cnf文件.
因此我们
vi /etc/my.cnf
把下面内容粘进去即可,标红的地方是需要注意的。
(注):确保全部复制粘贴文件
# For advice on how to change settings please see# http://dev.mysql.com/doc/refman/5.7/en/server-configuration-defaults.html# *** DO NOT EDIT THIS FILE. It's a template which will be copied to the# *** default location during install, and will be replaced if you# *** upgrade to a newer version of MySQL. # 组[mysqld]# Remove leading # and set to the amount of RAM for the most important data# cache in MySQL. Start at 70% of total RAM for dedicated server, else 10%.# innodb_buffer_pool_size = 128M# Remove leading # to turn on a very important data integrity option: logging# changes to the binary log between backups.# log_bingeneral_log_file = /var/log/mysql/mysql.loggeneral_log = 1# These are commonly set, remove the # and set as required.basedir =/usr/local/mysql/mysqldatadir =/usr/local/mysql/mysql/dataport = 3306#server_id = .....socket =/usr/local/mysql/mysql/tmp/mysql.sock#kip-external-lockingskip-name-resolvepid-file=/usr/local/mysql/mysql/data/mysql.pidcharacter_set_server=utf8init_connect='SET NAMES utf8'log-error=/usr/local/mysql/mysql/data/mysqld.errslow_query_log = 1slow_query_log_file =/usr/local/mysql/mysql/data/slow-query.loglong_query_time = 1log-queries-not-using-indexesmax_connections = 1024back_log = 128wait_timeout = 100interactive_timeout = 200key_buffer_size=256Mquery_cache_size = 256Mquery_cache_type=1query_cache_limit=50Mmax_connect_errors=20sort_buffer_size = 2Mmax_allowed_packet=16Mjoin_buffer_size=2Mthread_cache_size=200innodb_buffer_pool_size = 2048Minnodb_flush_log_at_trx_commit = 1innodb_log_buffer_size=32Minnodb_log_file_size=128Minnodb_log_files_in_group=3server_id=1log-bin=mysql-binbinlog_cache_size=2Mmax_binlog_cache_size=8Mmax_binlog_size=512Mexpire_logs_days=7read_buffer_size=1Mread_rnd_buffer_size=16Mbulk_insert_buffer_size=64M# Remove leading # to set options mainly useful for reporting servers.# The server defaults are faster for transactions and fast SELECTs.# Adjust sizes as needed, experiment to find the optimal values.# join_buffer_size = 128M# sort_buffer_size = 2M# read_rnd_buffer_size = 2Msql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
八 创建tmp目录
mkdir /usr/local/mysql/mysql/tmp
九 启动mysql
命令:cd /usr/local/mysql/mysql/bin命令:./mysqld_safe &
十 登录数据库,密码为第六步生成的默认密码
./mysql -u root -p
十一 操作数据库时报错
mysql> use mysql
ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing this statement.在没有进行修改默认密码之前,是不允许做任何事情的。
解决方案:
SET PASSWORD = PASSWORD('123456');
十二 错误处理以及使用SQLyog连接数据库
1 未关闭防火墙有可能造成数据库不能连接
(注):centos7
systemctl stop firewalld.service #停止firewallsystemctl disable firewalld.service #禁止firewall开机启动
2(日志data/mysqld.err) mysqld: File '/var/log/mysql/mysql.log' not found (Errcode: 2 - No such file or directory)
解决方案:
查看是否有/var/log/mysql这个目录,没有的话创建
mkdir /var/log/mysql
目录:/var/log下执行权限修改命令
chown mysql:mysql -R .
3(日志data/mysqld.err)Could not create unix socket lock file /usr/local/mysql/mysql/tmp/mysql.sock.lock.
解决方案:
cd /usr/local/mysql/mysql/tmp/chown -R mysql:mysql /usr/local/mysql/mysql/tmp/
4 (日志data/mysqld.err)Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)
解决方案:(创建软连接)
ln -s /usr/local/mysql/mysql/tmp/mysql.sock /tmp/mysql.sock
5 host"***.***.*.***" is not allowed to connect mysql--------mysql"Access denied for user'root'@'IP地址'"
解决方案:(注*用户名密码)
登录mysql给root用户授权
GRANT ALL PRIVILEGES ON *.* TO 'ROOT'@'%' IDENTIFIED BY '123456' WITH GRANT OPTION;
十三 关闭mysql数据库
ps -A|grep mysql kill -9 进程号kill -9 进程号