Ubuntu安装mysql
1、安装命令
sudo apt-get install mysql-server //服务端
sudo apt-get install mysql-client //客户端
sudo apt-get install libmysqlclient-dev //程序编译时链接的库
2、检查安装
sudo netstat -tap | grep mysql
3、更改默认密码
sudo cat /etc/mysql/debian.cnf
4、登录
mysql -u yuor-username -p
5、修改密码
use mysql;
// 下一行,密码改为了yourpassword,可以设置成其他的
update mysql.user set authentication_string=password('yourpassword') where user='root' and Host ='localhost';
update user set plugin="mysql_native_password";
flush privileges;
quit;
6、远程连接问题排查
具体表现为:利用Navicat登录或利用Console登录时包报10060错误,Navicat测试连接超时(timeout)
(1)判断mysql是否启动
ps -ef|grep mysqld
(若mysql进程不存在,启动mysql/etc/init.d/mysqld start
)
(2) 检查Mysql占用的端口号和IP:
a. 首先检查是否监听3306端口(默认端口),利用mysql -u [用户名] -p
登录Mysql:
检查账号是否配置正确
select user,host from mysql.user;
若不限制登录的host,此时账号后应显示%
,当然,此处还应保证确实有相应权限
grant all privileges on *.* to 'root'@'%' identified by 'root' with grant option;
flush privileges;
检查默认端口
show global variables like 'port';
(若端口发生改变,登录时应利用-P [端口号]
的方式指定端口)
b.检查进程实际监听地址
netstat -nlp|grep 3306
若显示为127.0.0.1:3306则说明mysqlbind-address设置为bind-address=127.0.0.1,可以简单理解为目前,仅服务器所在机器可以访问到这个mysq
解决方法为:
vi /etc/mysql/mysql.conf.d/mysqld.cnf
注释掉(前面加个#号) bind-address=127.0.0.1
再重启mysql服务
/etc/init.d/mysql restart
(3)检查防火墙配置
sudo ufw status
若显示Status: inactive说明防火墙开启,此时可利用sudo ufw disable关闭防火墙(不推荐) 也可利用
sudo allow 3306
配置放行规则
*用户创建与授权
1、用户创建
CREATE USER 'username'@'host' IDENTIFIED BY 'password';
2、授权
GRANT privileges ON databasename.tablename TO 'username'@'host'
说明:
privileges:用户的操作权限,如SELECT,INSERT,UPDATE等,如果要授予所的权限则使用ALL
databasename:数据库名
tablename:表名,如果要授予该用户对所有数据库和表的相应操作权限则可用*表示,如*.*
3、设置与更改用户密码
SET PASSWORD FOR 'username'@'host' = PASSWORD('newpassword');
如果是当前登陆用户用:
SET PASSWORD = PASSWORD("newpassword");
4、撤销用户权限
REVOKE privilege ON databasename.tablename FROM 'username'@'host';
5、删除用户
DROP USER 'username'@'host';
* 卸载相关操作
sudo apt-get remove mysql-server
sudo apt-get autoremove mysql-server
sudo apt-get remove mysql-common (非常重要)