写下这篇文章,主要是在很久以前,在linux上安装过一次mysql。今天再次安装,又遇到了相同的问题。因此要做下笔记记录下。
我使用的Mysql 安装包是mysql-5.7.18-linux-glibc2.5-x86_64.tar.gz
先解压tar -zxvf mysql-5.7.18-linux-glibc2.5-x86_64.tar.gz
然后重命名 mv mysql-5.7.18-linux-glibc2.5-x86_64 mysql
然后进入到mysql 目录下
cp support-files/mysql.server /etc/init.d/mysql
# 赋予可执行权限
chmod +x /etc/init.d/mysql
# 添加服务
chkconfig --add mysql
弄个my.cnf到 /etc目录下
我的是这样:
# 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]
log-bin=mysql-bin
server-id=2
binlog-ignore-db=information_schema
binlog-ignore-db=cluster
binlog-ignore-db=mysql
binlog-do-db=ufind_db,test
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
# 一般配置选项
basedir = /usr/local/mysql
datadir = /usr/local/mysql/data
port = 3306
#socket = /var/run/mysqld/mysqld.sock
character-set-server=utf8
log-error = /usr/local/mysql/data/error.log #添加错误日志
最简单的
然后是注册和初始化MySQL服务
bin/mysqld --initialize-insecure --user=root --basedir=/usr/local/mysql/ --datadir=/usr/local/mysql/data/
遇到的第一个问题
Starting MySQL.Logging to '/usr/local/mysql/data/localhost.localdomain.err'.
ERROR! The server quit without updating PID file (/usr/local/mysql/data/localhost.localdomain.pid).
本以为是没有找到这个localhost.localdomain.pid文件 结果一看真没有,实际上是权限的问题
到网上找了很多解决方案都试过,最后归根于要新建mysql用户
于是新建了个Mysql用户
并且执行 chown -R mysql.mysql .(我也不知道怎么回事 这样就好了)
ln -s /usr/local/mysql/bin/mysql /usr/bin/mysql 创建软链接,方便
第二个问题 以root用户登录 会出现这个
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)
网上给出的很多例子是说给root用户设置密码。最终找到个解决方案
在mysql5.7以下的版本如下:
mysql> UPDATE user SET Password=PASSWORD('123456') where USER='root' and host='127.0.0.1' or host='localhost';
在mysql5.7版本如下:
update mysql.user set authentication_string=password('123456') where user='root' and host='127.0.0.1' or host='localhost';
然后FLUSH PRIVILEGES;
看了下user表。我用的是5.7版本。当用第一句时候,会提示没有password这个字段。这是个值得注意的地方。
最后使用
grant all privileges on *.* to 'root'@'%' identified by '123456';
FLUSH PRIVILEGES;
可以使用netstat -anp|grep 3306 查看
就可以远程连接服务器上的数据库了。
https://jingyan.baidu.com/album/a378c9609eb652b3282830fd.html?picindex=3