本文共 2304 字,大约阅读时间需要 7 分钟。
ubuntu16.0.4安装mysql
apt-get update;apt-get upgrade;apt-get install mysql-server;这个版本目前默认安装mysql5.7修改字符集:
vim /etc/my.inidefault-character-set=utf8lower_case_table_names = 0
其中 0:区分大小写,1:不区分大小写启动:select user,host from mysql.user;
删除匿名用户:delete from mysql.user where user=’’;刷新权限:
flush privileges;
开放3306端口:
iptabels -A INPUT -p tcp -m state --state NEW -m tcp --dport 3306 -j ACCEPT
也可以使用:ufw allow 3306ufw allow mysql ;建立用户:
insert into mysql.user(Host,User,Password) values(“localhost”,”yk”,password(”19851014”));create database mmal
default character set utf8 collate utf8_general_ci;
查看权限:
select * from mysql.user \G;赋予权限:
grant all privileges on mall.* to yk@’%’ identified by ‘mall’ with grant option;
set password for root@localhost=password(‘root’);
set password for root@127.0.0.1=password(‘root’);问题一:安装过程中遇到的问题。
每次在linux安装成功软件,都习惯把软件卸载了,在重新安装,结果就出现了下面的问题,方法是网上找的,网址忘了,给原创道个歉。如果安装不成功:1、安装到Renaming removed key_buffer and myisam-recover options (if present)就卡住了,而且ctrl+C 也无法退出,最后我关闭了终端强制退出了,但是我发现运用sudo netstat -tap | grep mysql 居然显示是启动成功的,可是进入shell界面就会出现问题,提示ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password:YES)网上找了一堆方法,都无法解决。 无奈考虑卸载重装:sudo apt-get autoremove mysql* --purge
sudo apt-get remove apparmor //这个apparmor是在装mysql-server时装上的,和安全有关2、重启电脑后(很多时候重启是法宝),再次利用命令apt-get安装mysql-server,运行到Renaming removed key_buffer and myisam-recover options (if present)仍然卡住了,我再次中止了终端,发现启动也是成功的,尝试进入shell界面,出现另一种新的错误:ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2),然后又是找了很多国内外资料,国内百度无法搜索出和这个错误完全相关的,还是老实×××上谷歌,提出的方案是需要删除一些重复的配置文件,但是我连这个/var/run/mysqld/mysqld.sock没有,因此仍然无法解决。 再次卸载。考虑一定要卸载非常彻底。sudo apt-get autoremove mysql* --purge
sudo apt-get remove apparmor sudo rm /var/lib/mysql/ -R //非常重要sudo rm /etc/mysql/ -R //非常重要3、重启电脑,再次利用命令sudo apt-get install mysql-server 顺利安装成功!问题二:远程登陆mysql服务登陆不不了:
检查服务启动没有:ps aux | grep mysql检查端口监听:netstat -antp | grep 3306如果监听显示只有127.0.0.1:3306:首先修改配置文件,mysql5.7配置文件在
/etc/mysql/mysql.conf.d/my.cnf将bind-address=127.0.0.1修改为bind-address=0.0.0.0
如果还是远程访问不了:查看给相应的用户赋予远程访问或指定ip访问的权限没有。select host,user from mysql.user;赋予相应用户权限:update user set host=’%’ where user = ‘root’;‘%’是指任何ip地址都可以访问。flush privileges;转载于:https://blog.51cto.com/6631065/2055153