一、使用ps -ef|grep mysql查看mysql是否启动以及查看目录结构
MySQL的目录结构:
/var/lib/mysql mysql数据库文件的存放路径
/usr/share/mysql 配置文件目录 mysql.server命令及配置文件
/usr/bin 相关命令目录 mysqladmin mysqldump等命令
/etc/init.d/mysql 起停相关脚本
二、mysql配置文件
用rpm包安装的MySQL是不会安装/etc/my.cnf文件的,有以下两种可能
1. my.cnf只是MySQL启动时的一个参数文件,可以没有它,这时MySQL会用内置的默认参数启动,
2. MySQL在启动时自动使用/usr/share/mysql目录下的my-medium.cnf文件,这种说法仅限于rpm包安装的MySQL
我们只需要把my-medium.cnf复制到/etc/my.cnf目录下即可。
`cp /usr/share/mysql/my-medium.cnf /etc/my.cnf`
三、MySQL远程连接
1.先进入MySQL,然后查询当前用户详情:如下
mysql> use mysql;
Database changed
mysql> select host,user,password from user;
+----------------------------+------+----------------------------------------------------------------------------+
| host | user | password |
+----------------------------+------+----------------------------------------------------------------------------+
| localhost | root | *6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9 |
| localhost.localdomain | root | *6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9 |
| 127.0.0.1 | root | *6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9 |
| ::1 | root | *6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9 |
+-----------------------------+------+---------------------------------------------------------------------------+
4 rows in set (0.00 sec)
2. 添加或修改一行数据,使得host主机有 % ,%表示任何IP都可以连接
mysql> update user set password=password('123456') where user = 'root';
mysql> update user set host='%' where user='root' and host='localhost';
mysql> flush privileges;
注意:执行完毕以后,一定要执行flush privileges;
3. 接下来用使用root用户登录,然后use mysql;如果出现如下情况:
ERROR 1044 (42000): Access denied for user ''@'localhost' todatabase 'mysql'!即不能使用mysql,因为在mysql数据库的user表里,存在用户名为空的账户即匿名账户,导致登录的时候是虽然用的是root,但实际是匿名登录的,通过错误提示里的''@'localhost'可以看出来,处理方法:
(1).关闭mysql
# service mysqld stop
(2.)屏蔽权限
# mysqld_safe --skip-grant-table
屏幕出现: Starting demo from .....
(3.)新开起一个终端输入
# mysql -u root mysql
mysql> delete from user where user='';
mysql> flush privileges;//记得要这句话,否则如果关闭先前的终端,又会出现原来的错误
注意:执行完毕以后,一定要执行flush privileges,不然仍然会出错;
4.最后的结果如下,然后可以进行远程连接,如果仍然无法连接,可以查看防火墙是否拦截
5.如果是阿里云ECS服务器,以上工作都做好了,仍然无法连接,则需要配置ecs安全组防火墙
(1.)在服务器控制台找到 更多->网络和安全组->安全组配置
(2)到达安全组列表,点击配置规则->添加安全组规则:
确定以后,即配置完毕
四、mysql中文乱码问题
1.进入mysql中输入show variables like '%char%';命令查看mysql的字符集,如下图:
数据库默认的字符编码不是utf-8,所以导致乱码,所以需要修改配置文件中的字符集编码。
2.修改配置文件字符集编码,vim my.cnf 进入修改mysql的配置文件
①找到[client],在socket下一行加入default-character-set=utf8,如下图:
②找到[mysqld]加入如下设置
character_set_server=utf8
character_set_client=utf8
collation-server=utf8_general_ci
如下图:
③找到[mysql]加入default-character-set=utf8设置:如下图
3.重新开启mysql服务
执行① service mysql stop ②service mysql start或者命令service mysql restart