mysql安装

参考: https://www.jianshu.com/p/7f1cb7edd332
image.png

移除mysql残留包

sudo apt-get autoremove --purge mysql-server*
sudo apt-get remove mysql-server
sudo apt-get autoremove mysql-server
sudo apt-get remove mysql-common
# 清理残留数据
sudo dpkg -l |grep ^rc|awk '{print $2}' |sudo xargs dpkg -P

在线安装mysql

sudo apt-get install mysql-server
sudo apt-get install mysql-client
sudo apt-get install libmysqlclient-dev

# 启动mysql
sudo service mysql start
# 添加mysql用户,解决 No directory 报错
usermod -d /var/lib/mysql/ mysql
# 关闭mysql
sudo service mysql stop

默认配置:

  • /etc/mysql/my.cnf -> /etc/alternatives/my.cnf -> /etc/mysql/mysql.cnf
!includedir /etc/mysql/conf.d/
!includedir /etc/mysql/mysql.conf.d/
  • /etc/mysql/mysql.conf.d/mysqld.cnf
[mysqld]
user            = mysql
bind-address            = 127.0.0.1
mysqlx-bind-address     = 127.0.0.1
key_buffer_size         = 16M
myisam-recover-options  = BACKUP
log_error = /var/log/mysql/error.log
max_binlog_size   = 100M

修改mysql密码

配置mysql跳过密码检测: sudo vi /etc/mysql/mysql.conf.d/mysqld.cnf
添加skip-grant-tables[mysqld]下面

# 重启服务
sudo service mysql restart
# 进入mysql客户端
sudo mysql

修改密码:

-- mysql5.x
select user,host,authentication_string,plugin,password('123456') from mysql.user where user='root';
GRANT ALL PRIVILEGES ON *.* TO root@'%' IDENTIFIED BY '123456' WITH GRANT OPTION; 
-- mysql 8.x
select user,host,authentication_string,plugin,sha1('123456') from mysql.user where user='root';
update mysql.user set authentication_string = sha1('123456') where user='root';
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '123456';
-- 授权登录位置
update mysql.user set host='%' where user='root';

flush privileges
-- 授权任意位置登录
create user 'root'@'%' identified by '123456';
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%';
flush privileges;
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '123456';
-- 查看字符编码
show variables like '%char%';
-- 设置字符编码
set character_set_connectiont=utf8mb4;
set character_set_database=utf8mb4;
set character_set_results=utf8mb4;
set character_set_server=utf8mb4;
-- 查看权限
show grants for 'root'@'localhost';

修改配置文件中的字符编码:

[mysql]
default-character-set=utf8mb4
[mysqld]
character-set-server=utf8mb4
character-set-filesystem=utf8mb4
[client]
default-character-set=utf8mb4