Add Max Concurrent Connections for database users
Closes #1849 Allows database users to be limited to a number of concurrent connections to prevent one user from connecting hundreds of time and bottlenecking the MySQL server.
This commit is contained in:
parent
2c3a9228ec
commit
f0e4764a11
10 changed files with 56 additions and 6 deletions
|
@ -151,6 +151,10 @@ export default ({ database, className }: Props) => {
|
|||
<p className={'text-sm'}>{database.username}</p>
|
||||
<p className={'mt-1 text-2xs text-neutral-500 uppercase select-none'}>Username</p>
|
||||
</div>
|
||||
<div className={'ml-8 text-center'}>
|
||||
<p className={'text-sm'}>{database.max_connections}</p>
|
||||
<p className={'mt-1 text-2xs text-neutral-500 uppercase select-none'}>Max Connections</p>
|
||||
</div>
|
||||
<div className={'ml-8'}>
|
||||
<button className={'btn btn-sm btn-secondary mr-2'} onClick={() => setConnectionVisible(true)}>
|
||||
<FontAwesomeIcon icon={faEye} fixedWidth={true}/>
|
||||
|
|
|
@ -99,6 +99,7 @@
|
|||
<th>Database Name</th>
|
||||
<th>Username</th>
|
||||
<th>Connections From</th>
|
||||
<th>Max Connections</th>
|
||||
<th></th>
|
||||
</tr>
|
||||
@foreach($databases as $database)
|
||||
|
@ -107,6 +108,7 @@
|
|||
<td class="middle">{{ $database->database }}</td>
|
||||
<td class="middle">{{ $database->username }}</td>
|
||||
<td class="middle">{{ $database->remote }}</td>
|
||||
<td class="middle">{{ $database->max_connections }}</td>
|
||||
<td class="text-center">
|
||||
<a href="{{ route('admin.servers.view.database', $database->getRelation('server')->id) }}">
|
||||
<button class="btn btn-xs btn-primary">Manage</button>
|
||||
|
|
|
@ -37,6 +37,7 @@
|
|||
<th>Username</th>
|
||||
<th>Connections From</th>
|
||||
<th>Host</th>
|
||||
<th>Max Conenctions</th>
|
||||
<th></th>
|
||||
</tr>
|
||||
@foreach($server->databases as $database)
|
||||
|
@ -45,6 +46,7 @@
|
|||
<td>{{ $database->username }}</td>
|
||||
<td>{{ $database->remote }}</td>
|
||||
<td><code>{{ $database->host->host }}:{{ $database->host->port }}</code></td>
|
||||
<td>{{ $database->max_connections }}</td>
|
||||
<td class="text-center">
|
||||
<button data-action="reset-password" data-id="{{ $database->id }}" class="btn btn-xs btn-primary"><i class="fa fa-refresh"></i></button>
|
||||
<button data-action="remove" data-id="{{ $database->id }}" class="btn btn-xs btn-danger"><i class="fa fa-trash"></i></button>
|
||||
|
@ -83,6 +85,11 @@
|
|||
<input id="pRemote" type="text" name="remote" class="form-control" value="%" />
|
||||
<p class="text-muted small">This should reflect the IP address that connections are allowed from. Uses standard MySQL notation. If unsure leave as <code>%</code>.</p>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label for="pmax_connections" class="control-label">Max Concurrent Connections</label>
|
||||
<input id="pmax_connections" type="text" name="max_connections" class="form-control" value="150" />
|
||||
<p class="text-muted small">This should reflect the max number of concurrent connections from this user to the database. Use <code>0</code> for unlimited</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="box-footer">
|
||||
{!! csrf_field() !!}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue