安装参考:zhuanlan.zhihu.com/p/64080934
设置密码参考:cloud.tencent.com/developer/a…
-
安装
sudo apt update sudo apt install mysql-server -y
-
查看状态
sudo systemctl status mysql.service
-
查看版本信息
sudo mysqladmin -u root version -p # 或者登录后键入 status
-
使用帮助
mysql --help
-
启动服务
sudo systemctl start mysql.service # 开机自启动 软件由 systemd 管理才行 sudo systemctl enable mysql.service # 重启 sudo service mysql restart;
-
登陆
mysql -u root -p -h [主机名]
-
停止服务
sudo systemctl stop mysql.service && sudo systemctl disable mysql.service
-
设置密码
逻辑思路:- 通过
/etc/mysql/debian.cnf
中的默认用户登陆mysql
- 使用命令设置密码
# 查看默认用户 cat /etc/mysql/debian.cnf
显示
# Automatically generated for Debian scripts. DO NOT TOUCH! [client] host = localhost user = debian-sys-maint password = UA0YeS550GXbLNl0 socket = /var/run/mysqld/mysqld.sock [mysql_upgrade] host = localhost user = debian-sys-maint password = UA0YeS550GXbLNl0 socket = /var/run/mysqld/mysqld.sock
以默认用户登陆并设置密码
mysql -u debian-sys-maint -p use mysql; # 重新设置密码 # 可能提示密码强度不够 # set global validate_password_policy=0; # set global validate_password_length=1; UPDATE user SET authentication_string=PASSWORD('123456') where USER='root'; # set plugin update user set authentication_string =password('123456'),plugin='mysql_native_password' where user='root';
- 通过
-
解决不加
sudo
就报错access denied for user ‘root’@’localhost'
# 先以 sudo root 登陆 sudo mysql -u root -p # 然后 ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '123456'; # 之后即可 mysql -u root -p
-
允许远程登陆**
注意,Mysql 8.0 以上操作的是第二种一种,详见下面
**-
登陆
mysql
赋予远程访问权限use mysql; grant all privileges on *.* to 'root'@'%' identified by '123456'; # 8.0 之后的版采用以下 # 实际是在添加 root 用户,并赋权 # 一般到这步创建的用户才是正儿八经的用户,之前的用户应该都只是 mysql 的默认用户,比如是 /etc/mysql/debian.cnf;或者在8.0以上安装时键入root用户密码的那个临时用户 # 这两步很关键,一般就是这里改下权限,下面再改下监听端口 0.0.0.0 就开启了远程权限 # 防火墙可选步骤, Ubuntu 18.04 没做防火墙设置也可 create user root@'%' identified by '123456'; grant all privileges on *.* to 'root'@'%' with grant option; # 如果提示密码强度不够,执行以下两句 # set global validate_password_policy=0; # set global validate_password_length=1; # 刷新数据库 flush privileges;
-
修改配置文件,然后重新启动
文件路径/etc/mysql/mysql.conf.d/mysqld.cnf
修改如下(127.0.0.1回环网络只允许本机登陆,其它主机登陆不了)# bind-address = 127.0.0.1 bind-address = 0.0.0.0
-
防火墙相关
# 开防火墙 service firewalld start # 重启 service firewalld restart # 添加端口 协议 firewall-cmd --permanent --add-port=3306/tcp firewall-cmd --reload # 光防火墙 service firewalld stop # 或者 sudo systemctl disable firewalld
-
-
查看是否是以
0.0.0.0
(不是127.0.0.1
)监听sudo netstat -npl|grep 3306 # 显示 tcp 0 0 0.0.0.0:3306 0.0.0.0:* LISTEN 8048/mysqld
-
卸载(卸载前停
mysql
确保文件备份)# 停止服务 sudo systemctl stop mysql.service && sudo systemctl disable mysql.service # 卸载 sudo apt purge mysql* # 清理依赖 sudo apt autoremove sudo apt autoclean sudo rm -rf /etc/mysql/ /var/lib/mysql
安装8.0以上的高版本,采用官方源
-
到官网复制下源
MySQL :: Download MySQL APT Repository -
下载该
deb
并更新到仓库,然后安装apt-get install curl # 不要加 sudo curl -OL https://dev.mysql.com/get/mysql-apt-config_0.8.19-1_all.deb # 解压该源 sudo dpkg -i mysql-apt-config* # 更新到仓库 sudo apt update # 像上面一样安装 sudo apt install mysql-server -y
Centos
上安装Mysql 8.0
-
参考,很靠谱,力荐:Linux (centos8)安装 MySQL 8 数据库(图文详细教程) - 云+社区 - 腾讯云 (tencent.com)
另一个不知可靠度:(29条消息) CentOs7安装mysql-server和libmysqlclient-dev_Borange54的博客-CSDN博客_libmysqlclient-dev yum -
下载并安装 MySQL 官方的 Yum Repository
wget https://repo.mysql.com//mysql80-community-release-el7-1.noarch.rpm
-
安装
rpm
rpm -ivh mysql80-community-release-el7-1.noarch.rpm
-
安装服务
yum install mysql-server
-
启动服务
systemctl start mysqld.service
-
查看运行状态,及监听地址(
0.0.0.0
才正确),见上面 -
查看原始密码,如果提示密码为
empty
,则就是空的原始密码grep "password" /var/log/mysqld/mysqld.log
-
登录
mysql
,并设置密码mysql -uroot -p use mysql; ALTER USER 'root'@'localhost' IDENTIFIED BY 'new password';
-
设置远程连接(见上面
mysql 8.0
的设置),开放端口(只演示防火墙的设置)firewall-cmd --permanent --zone=public --add-port=3306/tcp # 刷新防火墙设置 firewall-cmd --reload
-
设置不区分大小写(没验证过), 在[mysqld]下,添加以下内容
vim /etc/my.cnf # 让MYSQL大小写敏感(1-不敏感,0-敏感) lower_case_table_names=1
MySQL
作为客户端开发
(29条消息) Linux(程序设计):18---libmysqlclient-dev库(C语言操作MySQL)_董哥的黑板报-CSDN博客_libmysqlclient-dev