在ubuntu中安装mysql服务
一、安装
在Ubuntu
终端中运行如下命令:
sudo apt install mysql-server mysql-client libmysqlclient-dev
如果安装完成后,MySQL
服务启动有问题,那么请试试这样做。
sudo service mysql stop
cd /var/run
sudo mkdir -p mysqld
sudo chown mysql mysqld
sudo usermod -d /var/lib/mysql/ mysql
sudo service mysql restart
根据我的经验,以上错误最有可能发生在使用WSL中的Ubuntu作为平台时。在Ubuntu Server下,安装过程非常平滑,没有类似问题。
二、配置
- 修改配置
sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf
在编辑器中修改如下两项:
bind-address = 0.0.0.0 mysqlx-bind-address = 0.0.0.0
- 安全设置
运行如下命令:
mysql_secure_installation
然后系统会提出问题,请你选择:
- Q1: VALIDATE…,是否启用严格密码机制,回答
n
。这样虽然不太安全,它可以是密码没那么复杂。 - Q2: Password(for root)…,询问是否为
root
设置密码。回答y
。请按提示设置密码。需要输入两次以验证。 - Q3: Anonymous user…,询问是否删除匿名用户。回答
n
。 - Q4: Root from localhost…,询问是否禁止
root
远程登录。回答y
。 - Q5: test database…,询问是否删除测试数据库
test
。回答n
。 - Q6: Reload privilege…,询问是否刷新权限表,回答
y
。
- Q1: VALIDATE…,是否启用严格密码机制,回答
- 重启服务
sudo service mysql restart
三、数据库操作
-
添加用户
假设你要添加用户’abc’,并设置密码’123456’。 首先登录
mysql
。sudo mysql -u root -p
住:用root用户登录需要sudo。
在
mysql
命令界面中发出如下命令:use mysql; create user 'abc'@'%' identified by '123456'; grant all on *.* to 'abc'@'%' with grant option; exit
其中的
grant
命令将在所有用户自建数据库上的所有操作权限赋予了用户’abc’。上例中的grant命令给了用户abc极大的权限。在实际应用中,应该根据需要授予合适的权限。
-
用户操作
首先用’abc’用户登录:
mysql -u abc -p
在
mysql
命令界面中发出如下命令创建数据库:create database mydb; use mydb; create table mytable(...);
四、PHP设置
假设使用PDO
方式连接数据库。
- 安装
PHP
扩展sudo apt install php8.1-pdo-mysql php8.1-pdo-odbc
-
修改
php.ini
打开
/etc/php/8.1/fpm/php.ini
,然后找到extensions
这一节,打开这些扩展的注释(即删掉前面的;):- mbstring
- exif
- pdo-mysql
- pdo-odbc
- 重启
php8.1-fpm
服务sudo service php8.1-fpm restart
PHP
脚本示例try { $db = new PDO("mysql:dbname=mydb;host=localhost", 'abc', '123456', [ PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION, //出错时抛出异常 PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC, //结果集使用关联数组 PDO::ATTR_EMULATE_PREPARES => true, //模拟prepare,防止SQL Injection PDO::ATTR_ORACLE_NULLS => PDO::NULL_EMPTY_STRING //原始空串转换为null ]); } catch (PDOException $e) { die( "$e\n"); } $rows = $db->query("SELECT * FROM mytable");