文章转自 https://www.cnblogs.com/mujingyu/p/7689116.html
问题1 :my-default.cnf
注意 5.7.23 没有 my-default.cnf
cnf 文件模板
[mysql]
# 设置mysql客户端默认字符集
default-character-set=utf8
socket=/var/lib/mysql/mysql.sock
[mysqld]
#skip-name-resolve
#设置3306端口
port = 3306
socket=/var/lib/mysql/mysql.sock
# 设置mysql的安装目录
basedir=/usr/local/mysql
# 设置mysql数据库的数据的存放目录
datadir=/usr/local/mysql/data
# 允许最大连接数
max_connections=200
# 服务端使用的字符集默认为8比特编码的latin1字符集
character-set-server=utf8
# 创建新表时将使用的默认存储引擎
default-storage-engine=INNODB
#lower_case_table_name=1
max_allowed_packet=16M
所以 可以自行创建 ,然后copy到 /etc/my.cnf
如果忘记了my.cnf 安装在了哪里, 可以使用 whereis my
问题2:mysqld_safe Directory '/var/lib/mysql' for UNIX socket file don't exists
可以看到问题是mysqld_safe Directory '/var/lib/mysql' for UNIX socket file don't exists
创建这个文件
mkdir /var/lib/mysql
chmod 777 /var/lib/mysql/
问题3: Access dennied for ....
我使用的是Navicat SQL 进行连接 但是 不知道 为什么 总是 报 Access denied.
然后再往上找方法了,
1) 解决方案一:赋权限:
也就是说 要 mysql 给 连接的电脑 权限, 这样子才能连接。
grant all privileges on *.* to 'root'@'我电脑的ip地址' identified by '密码';
grant all privileges on *.* to 'root'@'%' identified by 'myth';
当然 你要刷新一下 权限 flush privileges;
2) 解决方案二:跳过密码验证。
说是用远程连接的时候需要密码的验证, 所以需要在my.cnf 中添加跳过密码验证
skip-grant-tables
可以先使用 whereis my 找到 my.cnf , 然后再最后一行添加skip-grant-tables 就 okay 了。
3) 把mysql 设置为开机自动启动
cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld
chmod +x /etc/init.d/mysqld
chkconfig --add mysqld
chkconfig --list
可以设置为开机启动