阿里云 Ubuntu18.04安装mysql(成功跑过)
因为用flask写后端要用到mysql,想装到阿里云的Ubuntu18.04上。看了无数的教程,踩了无数的坑,我终于安装成功了!!!本文手把手教你怎么在Ubuntu18.04上安装mysql!!避免天坑,节约时间,从我做起!!! (这里为5.7版本,因为8.0+的实在没装成功,据说也有兼容性问题,但是5.7也能用啊挺好的不影响~)
好的我们要开始了!!准备好了嘛?
一、彻底卸载
是的,可能你之前踩了很多坑,现在乱七八糟的文件堆在一起,那么既然我们要从头开始,就把他们卸载干净叭!!
1、查看mysql的依赖项:
dpkg --list|grep mysql
- 1
2、卸载
sudo apt-get remove mysql-common
- 1
3、卸载(最后的版本数字根据自己具体的版本进行相应的修改)
sudo apt-get autoremove --purge mysql-server-5.7
- 1
4、清楚残留数据
dpkg -l|grep ^rc|awk '{print$2}'|sudo xargs dpkg -P
- 1
5、再次查看依赖项
dpkg --list|grep mysql
- 1
若命令输入之后无反应直接出现命令提示符(也就是啥也没发生跳到下一行了,并且没有报错),则说明依赖项完全删除
6、若仍有其他内容,则继续清除剩余依赖项:(这里的命令与上一条清除命令不同)
sudo apt-get autoremove --purge mysql-apt-config
- 1
最后再查看依赖项,跟上一条说的一样,要删干净才算好了,不然就重复该命令叭(我还好,一次就过了)
可能出现的问题(这个问题可能出现在下面安装的时候)
要是碰到这种报错,那就删除一下 /var/lib/mysql 还有 /etc/mysql,即按照下面的代码顺序挨个走一遍:
sudo rm /var/lib/mysql/ -R
sudo rm /etc/mysql/ -R
sudo apt-get autoremove mysql* --purge
sudo apt-get remove apparmor
sudo apt-get install mysql-server mysql-common
- 1
- 2
- 3
- 4
- 5
应该可以解决了叭(反正我这样就可以了,要是还不行可以在评论区留言报错内容)
二、安装mysql
1、安装
sudo apt-get --purge remove mysql-server mysql-common mysql-client
sudo apt-get install mysql-server mysql-common mysql-client
- 1
- 2
2、启动mysql
sudo /etc/init.d/mysql restart
- 1
3、字符集修改utf8
需要utf8格式的话就要修改一丢丢代码,首先输入
sudo vim /etc/mysql/my.cnf
- 1
进去以后原本代码的后面添加如下几行代码:(注意进去以后先按“i”才能编辑)
[mysqld]
collation-server = utf8_unicode_ci
init-connect='SET NAMES utf8'
character-set-server = utf8
- 1
- 2
- 3
- 4
然后保存(esc + “:wq” + 回车)
然后重启
service mysql restart
- 1
4、进入mysql
这个时候密码还是默认的空格,所以用下面这行代码就能就去了
sudo mysql -u root
- 1
三、其他一些操作
1、修改密码
先进mysql
sudo mysql -u root
- 1
然后(用新密码替换newpassword即可)
alter user'root'@'localhost' identified by 'newpassword';
- 1
2、创建新的database(注意替换)
CREATE DATABASE IF NOT EXISTS `new_database_name`;
- 1
3、创建新用户并给某database的权限(注意替换)
CREATE USER 'new_user_name'@'localhost' IDENTIFIED BY ‘database_name’;
GRANT ALL PRIVILEGES ON `database_name`.* TO 'new_user_name'@'localhost';
- 1
- 2
4、进去该数据库,然后才能对它进行各种操作
USE `database_name`;
- 1
5、在mysql中查找数据库和表
前提是已经进入了该数据库:
USE `database_name`;
- 1
查看table
show tables;
- 1
查看某table中的具体属性
desc xxx;
- 1
查看xxx table中的数据
select * from xxx;
- 1
6、更新数据
下面举个例子,下面是把表中B=1那一行中A设置为0
update table_name set A = 0 where B = 1;
- 1
7、SQL删除操作
清空table的数据
delete from xxx
- 1
删除table
drop table xxx;
- 1
navicat 连接服务器
1、
2、
Navicat连接服务器Mysql出现:ERROR 1698 (28000): Access denied for user 'root'@'localhost'
登录Mysql
sudo mysql -u root -p
- 1
查看user表(错误发生的原因就是root的plugin设置错误)
select user, plugin from mysql.user;
- 1
修改root的plugin为自己的密码
update mysql.user set authentication_string=PASSWORD('your passwd'), plugin='mysql_native_password' where user='root';
- 1
your passwd" 字段为你想设置的密码"
刷新
flush privileges;